检查列表中的某些元素是否相同

检查列表中的某些元素是否相同

所以我已经坐了一段时间了,在搜索了多个其他问题后找不到我需要的答案。

我被设置为制作4位随机数发生器的任务,然后用户必须尝试猜测该数字。他们每次尝试都会说出正确的数字和正确的位置。
同样,该数字必须位于正确的位置。

这是我当前的代码。

import random as r
def GetNumber():
    number = [r.randint(0, 9), r.randint(0, 9), r.randint(0, 9), r.randint(0, 9)]
    return number

def Choices():
    randomNumber = GetNumber()
    userChoice = list(input("Enter 4 numbers\n")) #Allows the user to input a number 4 digits long
    userChoice = [int(i) for i in userChoice]
    if userChoice == randomNumber:
        print("Congratulations! You chose the right number")


提前致谢 :)

最佳答案

这是我的看法。

import random as r


def GetNumber():
    return [r.randint(0, 9) for i in range(4)]


def Choices():
    randomNumber = GetNumber()
    userChoice = [int(i) for i in list(input("Enter 4 numbers\n"))]
    n = 0
    while userChoice != randomNumber:
        hits = [str(i+1) for i in range(4) if userChoice[i] == randomNumber[i]]
        if hits:
            print('You got position(s) {} correct'.format(', '.join(hits)))
        else:
            print('You got all of them wrong!')
        userChoice = [int(i) for i in list(input("Enter 4 numbers\n"))]
        n += 1
    print("Congratulations! You found the right number in {} turns!!".format(n))

Choices()


对该代码进行了一些重新构造,以使其循环播放,直到用户实际找到密码为止。这只是一个框架,您可以在该框架上进行一些试验,并尝试根据用户交互或其他方面对其进行进一步优化。

如果不清楚,请告诉我。干杯!

关于python - 检查列表中的某些元素是否相同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41188500/

10-11 07:38