老师,运行之后我输入的猜测数字为空字符串或者浮点数的话,会报错,两个报错内容一样,这个该修改哪里呢
# 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全能工程师
- 参与学习 人
- 提交作业 16416 份
- 解答问题 4469 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星