Python通过递归列出某些字符的替换

2024-05-18 04:27:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在完成一个项目,它需要非常基本的Python编码经验。我所学的这门课程实际上禁止了所有可以用来解决许多问题的高级工具。我需要帮助写一个递归函数,需要一个完整的棋盘游戏分数列表,并绘制正确的符号与每个球员的正确符号。这里提供了一个示例:

++++XO+++ ----> XXXXXOOOO

基本上,函数将“+”替换为和“X”或“O”,具体取决于哪个符号接触到“+”集。我已经编写了文件的其余部分,它接收了许多随机的分数集,并将它们存储为列表。我主要致力于处理列表,替换正确的“+”,并使用递归进行处理。你知道吗

任何关于如何编写这个函数的帮助或解释都将是惊人的。你知道吗

*编辑:我们主要使用for和while循环,以及if、elif和else语句。基本上只允许使用Python的基础知识。你知道吗


Tags: 工具项目函数游戏示例编码列表棋盘
1条回答
网友
1楼 · 发布于 2024-05-18 04:27:54

“基本上禁止所有高级工具”

哪些工具会被认为过于先进?我只是在写

for element in List:
    if element == something:

我们可以用什么?你知道吗

编辑:

L = "+++OX++++++"
L = list(L)
new_L = []
n = 0
for x in range(len(L)):
    if L[x] != "+":
        n += 1
        if n == 1:
            p = x + 1    #for the first occurrence of a string that is not +, we set p as the index of that character + 1
        else:
            p = len(L) - x    #we look how many more characters are left from the index of the character in the list and set that as p
        new_L += [L[x] for _ in range(p)]    #This is a list comprehension, we add the character p times to the new list, the _ is just a variable we don't need

不过,对于初学者来说,这可能不太易读。你知道吗

基本上,我们检查每个元素,一旦我们找到一个不是“+”的元素,我们就可以编写代码。如果x是字符在L中的位置,那么我们将该字符x+1次添加到新列表中。当我们第二次遇到一个字符时,如果x是这个字符在L中的位置,那么p的数量就是剩下的字符,所以我们把这个字符p次放入新的列表中。你知道吗

这不是一个完美的解决方案,因为它只适用于两个字符紧挨着对方,但这是一个开始。你知道吗

相关问题 更多 >