Python 如果在索引上使用加法,加法是否不能正常工作?

Python 如果在索引上使用加法,加法是否不能正常工作?,python,Python,我是python新手,编写一般代码,在执行特定项目时,我被困在这里: Guess_1 = input() Number_2 = input() Set_dead_1 = set() def teste_dead_1(): index_1 = 0 while index_1 <= 3: if Guess_1[index_1] == Number_2[index_1]: Set_dead_1.add(Number_2[index_1])

我是python新手,编写一般代码,在执行特定项目时,我被困在这里:

Guess_1 = input()
Number_2 = input()
Set_dead_1 = set()

def teste_dead_1():
    index_1 = 0
    while index_1 <= 3:
        if Guess_1[index_1] == Number_2[index_1]:
            Set_dead_1.add(Number_2[index_1])
        else:
            pass          
        for i in Set_dead_1:
            print(i, "is dead.")        
        index_1 += 1  
teste_dead_1()
但我想让它写下:

 >1 is dead
 2 is dead
 3 is dead
 4 is dead
谢谢你的理解


注:这两个1234是我键入给我的,你不需要一个循环来打印你的集合。在添加新成员时打印新成员集

Guess_1 = input()
Number_2 = input()
Set_dead_1 = set()

def teste_dead_1():
    index_1 = 0
    while index_1 <= 3:
        if Guess_1[index_1] == Number_2[index_1]:
            Set_dead_1.add(Number_2[index_1])

            print(Number_2[index_1], "is dead.")

        else:
            pass 

        index_1 += 1           

teste_dead_1()
Guess_1=input()
数字_2=输入()
Set_dead_1=Set()
def teste_dead_1():
索引_1=0

当索引_1时,我花时间复制您的代码并运行它。我用
if
检查输入长度来调试它。主要问题是
for
循环的位置不正确,并且在while循环的每次迭代中都在运行。如果您不了解迭代过程,我会将此写在纸上

放大代码:

Guess_1 = input()
Number_2 = input()
Set_dead_1 = set()

def teste_dead_1():
    index_1 = 0
    Guess1Length = len(Guess_1)
    Number2Length = len(Guess_1)
    if Guess1Length < 3 or Number2Length < 3:
        print('Input must be more than 3 characters')
        return False
    while index_1 <= 3:
        if Guess_1[index_1] == Number_2[index_1]:
            Set_dead_1.add(Number_2[index_1])
        index_1 += 1
    for i in Set_dead_1:
        print(i, "is dead.")
    return True
teste_dead_1()
Guess_1=input()
数字_2=输入()
Set_dead_1=Set()
def teste_dead_1():
索引_1=0
猜测1长度=长度(猜测1)
Number2Length=len(猜测1)
如果猜测1长度小于3或数字2长度小于3:
打印('输入必须超过3个字符')
返回错误

而索引_1 First
else:pass
是无用的。然后缩进在python中很重要:将你的
用于…:打印
块出while循环。谢谢,它起作用了,但顺序不对,因为它对我来说是3,然后2,然后1,然后4,我是否应该将其留空而不是键入else:pass?您不必在all@SaikoNoHero1如果这里的答案有帮助,请接受。否则,继续就尚未解决的问题进行对话:)@SaikoNoHero1这仍然打破了单一目的原则,我觉得OP可能不理解。我不同意这个建议。如果您想
打印每个项目,它实际上应该完全处于自己的功能中。…@T.Woody我同意您的观点,但您添加大O的方式不是吗?不是。大O符号仅代表函数主循环。这里,主循环是用户while循环。
Guess_1 = input()
Number_2 = input()
Set_dead_1 = set()

def teste_dead_1():
    index_1 = 0
    Guess1Length = len(Guess_1)
    Number2Length = len(Guess_1)
    if Guess1Length < 3 or Number2Length < 3:
        print('Input must be more than 3 characters')
        return False
    while index_1 <= 3:
        if Guess_1[index_1] == Number_2[index_1]:
            Set_dead_1.add(Number_2[index_1])
        index_1 += 1
    for i in Set_dead_1:
        print(i, "is dead.")
    return True
teste_dead_1()