就是想实现每次输入数字都校验是否为数字,一直不好用,求助
import randomprint ("测试")
secret=random.randint(1,100)
temp=input("请输入一个1-100的整数:")
while not temp.isdigit():
temp = input("数据类型错误,请输入一个正确的整数:")
while temp.isdigit():
guess=int(temp)
if guess==secret:
print("你猜对了")
else:
if guess>secret:
print("大了,大了")
temp=input("请重新输入:")
else:
print("小了小了")
temp=input("请重新输入:")
print("不玩了,游戏结束")
————————————————————
求大大们帮忙 ???啥,你那个判断不就是判断了他是不是输入的整数了吗,是不能跳出循环吗,能加个break就行了啊
import random
print ("测试")
secret=random.randint(1,100)
temp=input("请输入一个1-100的整数:")
while not temp.isdigit():
temp = input("数据类型错误,请输入一个正确的整数:")
while temp.isdigit():
guess=int(temp)
if guess==secret:
print("你猜对了")
break
else:
if guess>secret:
print("大了,大了")
temp=input("请重新输入:")
else:
print("小了小了")
temp=input("请重新输入:")
print("不玩了,游戏结束")
qq1484730945 发表于 2020-10-23 17:01
???啥,你那个判断不就是判断了他是不是输入的整数了吗,是不能跳出循环吗,能加个break就行了啊
测试
请输入一个1-100的整数:s
数据类型错误,请输入一个正确的整数:s
数据类型错误,请输入一个正确的整数:2
小了小了
请重新输入:f
不玩了,游戏结束
>>>
不行啊,重新输入一个非数字,就直接显示“不完了”,没有任何校验了 XX牛牛 发表于 2020-10-23 17:08
测试
请输入一个1-100的整数:s
数据类型错误,请输入一个正确的整数:s
import random
print ("测试")
secret=random.randint(1,100)
temp=input("请输入一个1-100的整数:")
while True:
if not temp.isdigit():
temp = input("数据类型错误,请输入一个正确的整数:")
elif int(temp)==secret:
print("你猜对了")
break
else:
if int(temp)>secret:
print("大了,大了")
temp=input("请重新输入:")
else:
print("小了小了")
temp=input("请重新输入:")
print("不玩了,游戏结束")
额,这样就好了 本帖最后由 coolliqing 于 2020-10-23 17:55 编辑
不需要用那么多while循环和input()函数,在合适的位置使用break和continue跳出循环就行,在你代码基础上改了一下,这样就可以了。
import random
print("测试")
secret = random.randint(1, 100)
while True:
temp = input("请输入一个1-100的整数:")
if temp == 'exit':
break
elif not temp.isdigit():
print('数据类型错误,请输入一个正确的整数')
continue
else:
guess = int(temp)
if guess == secret:
print("你猜对了")
break
else:
if guess > secret:
print("大了,大了")
continue
else:
print("小了小了")
continue
print("不玩了,游戏结束") coolliqing 发表于 2020-10-23 17:38
不需要用那么多while循环和input()函数,在合适的位置使用break和continue跳出循环就行,在你代码基础上 ...
太感谢了,因为2楼先答得,最佳答案给他了,依然谢谢你 coolliqing 发表于 2020-10-23 17:38
不需要用那么多while循环和input()函数,在合适的位置使用break和continue跳出循环就行,在你代码基础上 ...
又看了一遍,你这个函数用的少,真是赞 coolliqing 发表于 2020-10-23 17:38
不需要用那么多while循环和input()函数,在合适的位置使用break和continue跳出循环就行,在你代码基础上 ...
if temp == 'exit'
麻烦再问一下,这个语句是什么意思?
正常理解,判断temp是否和字符串"exit"相等
然而这里看起来毫不相干,而偏偏你的语句还是正确的,百度了查不到,还得麻烦你 XX牛牛 发表于 2020-10-23 20:46
if temp == 'exit'
麻烦再问一下,这个语句是什么意思?
正常理解,判断temp是否和字符串"exit"相等
翻译过来的话就是出口,退出的意思,如果用户输入exit就退出该程序,因为编程都是英语来整的,啊,发现好多大佬都是甩一堆代码不讲所以然的{:10_277:}{:10_277:} 本帖最后由 io37 于 2020-10-24 00:02 编辑
import random
secret = random.randint(1,100)
while True:
temp = input("请输入一个1-100的整数:")
if temp.isdigit():
guess = int(temp)
if guess == secret:
print("你猜对了")
break
else:
if guess > secret:
print("大了大了,请重新输入")
else:
print("小了小了,请重新输入")
else:
print("数据类型错误,请输入一个正确的整数")
print("不玩了,游戏结束")
========================================
{:10_266:} 我也是没学多久 拿你的改一下温习 XX牛牛 发表于 2020-10-23 20:46
if temp == 'exit'
麻烦再问一下,这个语句是什么意思?
正常理解,判断temp是否和字符串"exit"相等
晚上回去没上论坛回复晚了,你的代码随机数是1-100的,范围比较大,没有设置猜测次数限制,如果猜不到就会一直循环,设置这句判断用户是否输入的是字符串exit,如果是的话就跳出循环,结束游戏。
页:
[1]