首页 > 解决方案 > 尝试转换列表或摆脱列表编号周围的引号

问题描述

这个程序是猜数字的。它生成 4 个数字并允许用户猜测。每次猜测后,它会显示正确的数字数量和它们所在的位置。运行它时我没有收到任何语法错误,但是即使所有数字都正确,它也会说没有。我相信这是因为数字变量没有引号,而猜测列表有。任何帮助表示赞赏,谢谢!

from random import randint

    number = [(randint(0,9)), (randint(0,9)), (randint(0,9)), (randint(0,9))]



    while True:
        guess_int = (int(input('Guess a 4 digit number: ')))
        guess_str = (str(guess_int))
        guess = (list(guess_str))

        numcorrect = 0

        if guess == number:
            print('Correct!')

        elif number[0] == guess[0]:
            numcorrect = numcorrect + 1
            print('You got the first number correct')
        elif number[1] == guess[1]:
            numcorrect = numcorrect + 1
            print('You got the second number correct')
        elif number[2] == guess[2]:
            numcorrect = numcorrect + 1
            print('You got the third number correct')
        elif number[3] == guess[3]:
            numcorrect = numcorrect + 1
            print('You got the forth number correct')

        if numcorrect != 0:
            print('You got', numcorrect, 'numbers correct')

        if numcorrect == 0:
            print('You got no numbers correct')

标签: pythonrandom

解决方案


用更多的东西修复你的程序的错误..

from random import randint

number = [(randint(0, 9)), (randint(0, 9)), (randint(0, 9)), (randint(0, 9))]

print(number)

while True:
    guess_list_str = list(input('Guess a 4 digit number: '))
    guess = [int(g) for g in guess_list_str] # This is how you get rid of the quotes

    numcorrect = 0

    if number[0] == guess[0]:
        numcorrect = numcorrect + 1
        print('You got the first number correct')
    if number[1] == guess[1]:
        numcorrect = numcorrect + 1
        print('You got the second number correct')
    if number[2] == guess[2]:
        numcorrect = numcorrect + 1
        print('You got the third number correct')
    if number[3] == guess[3]:
        numcorrect = numcorrect + 1
        print('You got the forth number correct')

    if numcorrect != 0:
        print('You got', numcorrect, 'numbers correct')

    if numcorrect == 0:
        print('You got no numbers correct')

    if guess == number:
        print('Correct!')
        break  # Added code

推荐阅读