老师,运行之后我输入的猜测数字为空字符串或者浮点数的话,会报错,两个报错内容一样,这个该修改哪里呢
# coding:utf-8 import random import sys from datetime import datetime class Guess_num_game(object): def __init__(self): pass def guide_page(self, guide_word): # 输出标题 self.guide_word = '欢迎进入数字猜猜猜小游戏' print('{}{}{}'.format('*' * 50, self.guide_word, '*' * 50)) def all_num(self, n): # 判断n是否为数字,并返回结果 return n.isdigit() def num_legal(self, ls): self.ls = ls # 判断起始值和终止值大小 if int(ls[0]) == int(ls[-1]): print('您输入的区间数字相同!!请重新启动程序。') elif int(ls[0]) > int(ls[-1]): print('您输入的数字区间大小有误!!请重新启动程序。') else: return 1 sys.exit() def set_final_num(self, num1, num2): # 利用filter函数过滤以确保输入值全为数字 num_range = list(filter(self.all_num, [num1, num2])) # 若全是数字,则_filter列表里应该由两个字符 if len(num_range) == 2: _legal = self.num_legal(num_range) if _legal == 1: print('所产生的随机数字区间为: %s' % num_range) return random.randint(int(num1), int(num2)) else: print('您所输入的为非数字字符, 请重新启动!') sys.exit() def check_num_legal(self, num): # 判断用户输入的猜测数字是否在随机区间内 if int(num) < int(self.ls[0]) or int(num) > int(self.ls[-1]): print('对不起您输入的数字未在指定区间!!!') return 1 def write_record(self, times, value): value_ = '第{}次您猜测的数字为:{}'.format(times, value) now = datetime.now() with open('record.txt', 'a', encoding='utf-8') as f: f.write(f'\n{now}:{value_}') def main(self, rand1): temp = 0 while True: guess_num = input('请继续输入您猜测的数字:') # 判断猜测数字是否为数字类型 if self.all_num(guess_num): guess_num = int(guess_num) else: print('您所输入的为非数字字符, 请重新启动!') # 判断猜测数字是否在指定区间 if self.check_num_legal(guess_num): continue temp += 1 # 调用日志写入函数,传入猜测的次数和用户猜测的数字 self.write_record(temp, guess_num) print('*' * 10) # 判断猜测数字与随机数字的大小比较 if guess_num < rand1: print('Lower than the answer') elif guess_num > rand1: print('Higher than the answer') else: print('恭喜您!只用了%s次就赢得了游戏' % temp) break if __name__ == '__main__': guess_num = Guess_num_game() print(guess_num.guide_page(guide_word='欢迎进入数字猜猜猜小游戏')) i = input('数字区间起始值:') j = input('数字区间终止值:') rand = guess_num.set_final_num(i, j) guess_num.main(rand)
相关截图:
14
收起
正在回答 回答被采纳积分+1
1回答
Python全能工程师
- 参与学习 人
- 提交作业 16233 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星