Maxiangwang 发表于 2022-1-12 01:48:35

如果输入的不是数字,或者大于100小于1的时候,提示重新输入而不改变number的值

"""
游戏产生1-100的随机数
让玩家重复猜测
输出:猜大了,猜小了,猜对了,共猜了几次
"""
import random
count = 0
random_number = random.randint(1, 100)
while True:
    count += 1
    user = int(input('请输入一个数字:'))
    if user > random_number:
      print("猜大了")
    elif user == random_number:
      print("猜对了")
      break
    else:
      print("猜小了")
print('共猜了%d次' % count)

jhq999 发表于 2022-1-12 07:42:51

本帖最后由 jhq999 于 2022-1-12 08:11 编辑

import random
count = 0
random_number = random.randint(1, 100)
while True:
   
    user = input('请输入一个数字:')
    if user.isdigit():
      user=int(user)
      if user <100 anduser>0:
            count += 1
            if user > random_number:
                print("猜大了")
            elif user == random_number:
                print("猜对了")
                break
            else:
                print("猜小了")
      else:
            print('请输入小于100的正整数')
    else:
      print('请输入数字')
print('共猜了%d次' % count)

darrenkwan 发表于 2022-1-12 08:17:00

多加一个条件
if user not digit or user < 1 or user >100:
    print(“请输入一个1-100的数字“)
    continue

傻眼貓咪 发表于 2022-1-12 08:50:05

本帖最后由 傻眼貓咪 于 2022-1-12 09:28 编辑

我的代码用 a 和 b 储存区间边界,每次输入后,更新区间值,往内缩小,直到答案为止,这样就不用每次都要记已经输入了什么。也附加异常处理,希望对你有帮助。import random
count = 0; a = 1; b = 100
num = random.randint(a, b)
while True:
        count += 1
        try:
                res = int(input(f"请输入大于 {a} 小于 {b} 之间的整数:"))
                if res < a or res > b: print("输入错误:输入值不在数字范围内"); continue
                elif res > num: print("猜大了"); b = res
                elif res < num: print("猜小了"); a = res
                else:
                        print(f"猜对了,共猜了{count}次")
                        break
        except Exception:
                print("输入错误:不是合法数字")
                continue

Gacy 发表于 2022-1-12 17:25:45

异常处理啦
页: [1]
查看完整版本: 如果输入的不是数字,或者大于100小于1的时候,提示重新输入而不改变number的值