在python保龄球程序的while循环中输入一个数字

2024-06-16 10:47:34 发布

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

我正在做保龄球节目。我正在制作一个程序,将我输入的数字记录在一个列表中

rolls1 = []
rolls2 = []
rolls3 = []
frame = []
i = 0
while i < 10:
    i += 1
    n1 = int(input("Roll 1: "))
    rolls1.append(n1)
    if i < 10:
        if n1 == 10:
            rolls2.append(0)
        else:
            n2 = int(input("Roll 2: "))
            rolls2.append(n2)
    elif i == 10:
        if (n1 == 10):
            n2 = int(input("Roll 2: "))
            rolls2.append(n2)
            n3 = int(input("Roll 3: "))
            rolls3.append(n3)
        else:
            if (n1 + n2 == 10):
                n2 = int(input("Roll 2: "))
                rolls2.append(n2)
                n3 = int(input("Roll 3: "))
                rolls3.append(n3)
            else:
                n2 = int(input("Roll 2: "))
                rolls2.append(n2)
    

在最后一帧i == 10中,当我输入n1 = 8n2 = 2时,程序应该继续在n3中输入一个数字。但是,程序在n2处停止,因此程序的另一部分发生错误。在else内制作if似乎不是解决方案。我如何解决这个问题


Tags: 程序inputif数字elseintrollappend
1条回答
网友
1楼 · 发布于 2024-06-16 10:47:34

i==10时,未定义n2变量。因此,程序无法正确执行if语句n1 + n2 == 10。程序可能会转到最后一个else语句。只需将n2的输入置于最后一个if-else语句之外:

rolls1 = []
rolls2 = []
rolls3 = []
frame = []
i = 0
while i < 10:
    i += 1
    n1 = int(input("Roll 1: "))
    rolls1.append(n1)
    if i < 10:
        if n1 == 10:
            rolls2.append(0)
        else:
            n2 = int(input("Roll 2: "))
            rolls2.append(n2)
    elif i == 10:
        n2 = int(input("Roll 2: "))
        if (n1 == 10):
            rolls2.append(n2)
            n3 = int(input("Roll 3: "))
            rolls3.append(n3)
        else:
            if (n1 + n2 == 10):
                rolls2.append(n2)
                n3 = int(input("Roll 3: "))
                rolls3.append(n3)
            else:
                rolls2.append(n2)

相关问题 更多 >