python - 尝试转换列表或删除列表数字周围的引号

标签 python random

这个程序是猜数字的。它生成 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')

最佳答案

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

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

关于python - 尝试转换列表或删除列表数字周围的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58685689/

相关文章:

python - 如何格式化 CSV 中的字典列表? - Python

javascript - isNaN() javascript,带 2 个逗号的数字

java - 生成整数并丢弃最低值

python - 如何确定多个外键中SQL插入的顺序?

python - 迭代包含重复元素的列表

java - 随机百分比分支的编码模式?

arrays - 如何创建 n 个随机长度的字符串,其总和等于给定的数量?

php - SHA512在PHP中生成随机数

python - 删除Python中的INI部分

python - 如何从字符串中选择数字直到出现第一个非数字字符?