qq_38436167 2019-10-22 00:12 采纳率: 0%
浏览 512
已结题

Python基础:怎么确保用户输入的use1_guess和user2_guess一定是10进制的数字,如果不是10进制的数字应当怎么处理,使得这个小程序能够正确执行


import random

"""
案例:21点

- 两个玩家,游戏开始先输入名字
- 用字典保存每个玩家信息:姓名,获胜次数
- 电脑随机产生2个数,每个玩家轮流猜1个数,与电脑随机两个数求和,最接近21的获胜
- 每轮结束显示玩家信息
- 按q退出游戏
"""

target = 21

user1 = input('第一个玩家名字:')
user2 = input('第二个玩家名字:')
print(f'玩家:{user1}, {user2}')

users = {
    user1:
    {'win': 0},
    user2:
    {'win': 0}
}

print(users)

# PC 随机出2个数
num1 = random.randint(1, 10)
num2 = random.randint(1, 10)

# 此处不应该现在打印出来
# print(f'电脑随机选数:{num1}, {num2}')
user1_guess = input(f'{user1} guess:')
user2_guess = input('user2 guess:')


user1_sum = int(num1) + int(num2) + int(user1_guess)
user2_sum = int(num1) + int(num2) + int(user2_guess)
print(user1_sum, user2_sum)

if abs(user1_sum-21) > abs(user2_sum-21):
    print(f'{user1_sum}', f'{user2_sum}')
    print('user2 win!')
else:
    print('user1 win!')

print(f'电脑随机选数:{num1}, {num2}')

怎么确保用户输入的use1_guess和user2_guess一定是10进制的数字,如果不是10进制的数字应当怎么处理,使得这个小程序能够正确执行。

请用Python基础的内容对程序进行改写,太高深或者网上解释过于模糊的方法解释我看不懂。用简单代码进行修改的可以不用看下面的,但是导包或者定义类中的特殊方法请在回答问题的下方加入您的解释或者该方法的解释链接
我要的是解决方案,回答print("请输入十进制数字")之类的一律无视。

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-10-22 08:57
    关注
    import re
    
    user1 = input('第一个玩家名字:')
    user2 = input('第二个玩家名字:')
    pattern = re.compile(r'^\d+$')
    if not(pattern.match(user1) and pattern.match(user2)):
      print("输入的不是数字")
    else:
      你原来的代码
    
    评论

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题