老师,运行之后我输入的猜测数字为空字符串或者浮点数的话,会报错,两个报错内容一样,这个该修改哪里呢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | # 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全能工程师
- 参与学习 人
- 提交作业 16329 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧