所以我已经坐了一段时间了,在搜索了多个其他问题后找不到我需要的答案。
我被设置为制作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/