python - 匹配成功后如何停止用户输入
问题描述
所以,我终于开始着手这项工作,但我似乎无法阻止它要求用户输入。基本上,我想要代码做的是从用户那里获取一个数字,如果它匹配,那么继续打印每个“roll # (number) was (number)”。如果第一个输入没有匹配,那么它可能会再次询问(最多 3 次直到匹配)。如果匹配成功,则用户获胜,否则,计算机获胜。我认为 range(3) 可能是我的问题,但我不确定,因为我确实尝试删除它。
dashes = 65
dashes_count = 65 * "-"
print(f'You have three rolls of the dice to match a number you select.')
print(f'Good Luck!')
print(dashes_count)
import random
die = 0
roll = 0
def dice_roll():
dieroll = random.randint(1, 6) + random.randint(1, 6)
return dieroll
for die in range(3):
die1 = int(input(f'Choose a number between 2 and 12: '))
die2 = int(input(f'Choose a number between 2 and 12: '))
die3 = int(input(f'Choose a number between 2 and 12: '))
roll1 = dice_roll()
roll2 = dice_roll()
roll3 = dice_roll()
if die1 == roll1:
break
print(f'Roll # 1 was {roll1}')
print(f'Roll # 2 was {roll2}')
print(f'Roll # 3 was {roll3}')
print(f'You Win! - Thanks for playing!')
if die2 == roll2:
break
print(f'Roll # 1 was {roll1}')
print(f'Roll # 2 was {roll2}')
print(f'Roll # 3 was {roll3}')
print(f'You Win! - Thanks for playing!')
if die3 == roll3:
break
print(f'Roll # 1 was {roll1}')
print(f'Roll # 2 was {roll2}')
print(f'Roll # 3 was {roll3}')
print(f'You Win! - Thanks for playing!')
else:
print(f'Roll # 1 was {roll1}')
print(f'Roll # 2 was {roll2}')
print(f'Roll # 3 was {roll3}')
print(f'You Lose! - Thanks for playing!')
我正在寻找这样的输出:
Choose a number between 2 and 12: 3 # user input
roll # 1 was 5
roll # 2 was 3 # the matching number
roll # 3 was 11
You Win! - Thanks for playing!
# where the user input matches 1 or all rolls and prints all roll results.
# otherwise
Choose a number between 2 and 12: g # not valid / not a match
Choose a number between 2 and 12: 5 # the second try
roll # 1 was 7
roll # 2 was 12
roll # 3 was 5 # the matching number
You Win! - Thanks for playing
# " Choose a number between 2 and 12: " is limited to 3 tries only
# if all three tries receive in valid / unmatches numbers, print "You lose!"
解决方案
这应该是您的代码:
In [1899]: die = 0
...: roll = 0
...:
...: def dice_roll():
...: dieroll = random.randint(1, 6) + random.randint(1, 6)
...: return dieroll
...:
...: for die in range(3):
...: die1 = int(input(f'Choose a number between 2 and 12: '))
...: roll1 = dice_roll()
...: if die1 == roll1:
...: print(f'Roll # 1 was {roll1}')
...: print(f'You Win! - Thanks for playing!')
...: else:
...: print(f'Roll # 1 was {roll1}')
...: print(f'You Lose! - Thanks for playing!')
...:
Choose a number between 2 and 12: 3
Roll # 1 was 6
You Lose! - Thanks for playing!
Choose a number between 2 and 12: 4
Roll # 1 was 5
You Lose! - Thanks for playing!
Choose a number between 2 and 12: 5
Roll # 1 was 9
You Lose! - Thanks for playing!
推荐阅读
- tensorflow - Windows 10 64 位中的 TensorFlow 安装错误。Python 版本 3.7.1
- reactjs - React Native 异步获取 JSON,但抽象为单独的组件
- css - 假设我有一个最大宽度为 20 px 的列,我需要将内容包装在给定的宽度内
- python - 如何并行处理来自两个不同文件的行
- apache - 在 PCF 中以 Tomcat 为前端的 Apache
- jquery - mouseenter 和 mouseleave 下拉菜单问题
- ms-access - 为什么 SQLConfigDataSource 失败?
- java - SelectBox 的缩放文本
- r - 在 R 中使用带有 lapply/sapply 的匿名函数?
- javascript - 如何确定两个 ES6 类实例的相等性?