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 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码