|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
先看看这段代码:
- import sys , random #调用sys系统模块,random随机模块
- guess = random.randint (0,100) #系统产生0-100的随机数并赋值给guess
- count = 5 #计数器,一共有五次机会(改变count中的数值可以改变循环次数)
- print('Welcome! You have ',count, 'chance to play this game !')
- temp = input('Please typing a number of int here: ') #将用户输入的数值赋值给temp
- if isinstance(temp, list)
- number = int(temp) #强制转换temp中的数值类型为int(整型)并赋值给number
- if number > guess: #判断开始:如果number中的数值大于系统产生的随机数guess,则执行下面语句
- print('Your number is big !') #打印内容
- count = count - 1 #计数器count中的数值减 1
- print('You have ',count, 'chance !') #打印计数器count中数值的内容
- else: #否则:如果number中的数值不大于guess,则执行下面的语句
- print('Your number is small !') #打印内容
- count = count - 1 #计数器count数值减 1
- print('You have ',count, 'chance !') #打印内容,判断结束
- while count > 0: #循环开始:如果计数器count中的数值大于0,则执行下面代码:
- temp = input('Please typing a number of int here: ') #让用户重新输入内容,并赋值给temp
- number = int(temp) #强制转换temp中的数值类型为int(整型)并赋值给number
- if number == guess: #判断开始:如果number中的数值等于系统产生的随机数guess,则执行下面语句
- print('Great!!! You did it ! \nThe right number is :' ,guess, '!') #打印内容
- print('Game Over !') #打印内容
- sys.exit() #调用系统函数模块sys中的退出子命令.exit(),退出程序
- else: #否则:如果number中的数值不等于系统产生的随机数guess,则执行下面语句
- if number > guess: #判断开始:如果number中的数值大于系统产生的随机数guess,则执行下面语句
- print('Your number is big !') #打印内容
- count = count - 1 #计数器count中的数值减 1
- print('You have ',count, 'chance !') #打印内容
- else: #否则:如果number中的数值小于系统产生的随机数guess,则执行下面语句
- print('Your number is small !') #打印内容
- count = count - 1 #计数器count中的数值减 1
- print('You have ',count, 'chance !') #打印内容,判断结束
- print('Game Over ! ') #打印内容,循环结束
- sys.exit() #调用系统函数模块sys中的退出子命令.exit(),退出程序
复制代码
这段代码我想大家已经做了很多次了,我就不啰嗦了,我想先描述下我的问题:
当我在第一次让用户输入的时候输入的不是数字,而是非数字,会报错,程序终止。
于是,我用type判断数据类型:如果输入的类型不等于int类型,那么,重新输入。
现在问题来了,不管我输入什么,type出来的类型都是str(包括1:0)。。。。。,然后用isinstance进行判断。。结果和type一样。。
那么,我想问:
1:为何1:0也被python识别为str类型?
2:用什么方法才能正确判断出数据真正的、正确的类型?
3:我尝试用将输入的数据类型强制转换为ascii,number = ascii(temp),但type出来后的类型依然是str(不管输入什么都是)为什么?
4:听说异常可以处理这类事件,但是异常可以被循环吗?如果可以,在这段代码里面如何操作?
5:如果异常可以正常运行,那么,如果在除第一次意外的任何输入时,如果在此处理输入非int类型的事件?
6:这问题困扰我很久了,暂时还没想到。。。。。。。
各位,麻烦你们帮我看看,谢谢!
|
|