问题描述
random = random.randint(1000,9999)
guess = int(input("Enter your guess: "))
while guess != random:
guess = int(input("That was incorrect! Enter your guess: "))
这是一个非常简单的猜谜游戏,但是我想提供一些东西,在每一次不成功的尝试之后,它都会说出四位数中有多少数字是正确的。
我没有尝试过,主要是因为我不确定该怎么做。
例如
random = 1234
Enter your guess: 1111
You guessed 1 number correct
Enter your guess: 1222
You guessed 2 numbers correct
...... and so on
解决方法
如果您的意思是职位
random = random.randint(1000,9999)
guess = int(input("Enter your guess: "))
while guess != random:
right = 0
index = 0
for char in str(guess):
if char == str(random)[index]:
index += 1
right += 1
print(f'{right} were right')
guess = int(input("That was incorrect! Enter your guess: "))
,
如果您确实希望将两个数字都保持为int,则可以使用%(取模运算符)来查找整数除以10的基数后的余数。
例如。
correctnum = 0
random = 1234
guess = 1111
if ((((random-(random % 1000 )) /1000) == (((guess-(guess % 1000 )) /1000)):
correctnum++
对于100/10/1重复的公式应都比较该“点”中的数字,而不必转换数据类型。在此之后输出正确数字的值,您应该拥有所需的内容。
,random = 1234
random = str(random)
#guess = str(input('enter your guess'))
guess = '1222'
correct = 0
for i in range(len(guess)):
if guess[i] == random[i]:
correct += 1
print(correct)
ouput: 2
或简单地:
correct = sum(guess[i] == random[i] for i in range(len(guess)))