求助,这个语法为什么会报错
本帖最后由 挑灯. 于 2021-1-26 14:17 编辑猜数字游戏完善版
第一个版本是我昨天做的,能够正常运行,源代码:
import random
com_num=random.randint(1,10)
user_num=input('输入您猜测的数字')
temp=user_num.isdigit()
while temp!=1:
user_num=input('请输入正确的数据类型:整数')
temp=user_num.isdigit()
user_num=int(user_num)
chance=2
while chance:
if user_num>com_num:
print('猜测错误,比系统数字大',user_num-com_num)
if user_num<com_num:
print('猜测错误,比系统数字小',com_num-user_num)
if user_num==com_num:
print('恭喜您猜测正确!')
break
if chance==2:
print('您还有2次机会')
if chance==1:
print('您还有1次机会')
user_num=input('猜测错误,请重新输入')
temp=user_num.isdigit()
while temp!=0:
user_num=input('请输入正确数据类型:整数!')
temp=user_num.isdigit()
user_num=int(user_num)
chance-=1
if chance==0:
print('很遗憾您没有机会了')
print('游戏结束')
——————————————————————————————————————————————————————————————分割线——————————————————————————————————————————————————————————————————————————
第二个是我今天整改的,第27行代码报错,源代码:
import random
com_num=random.randint(1,10)
user_num=input('输入您猜测的数字')
temp=user_num.isdigit()
while temp!=1:
user_num=input('请输入正确的数据类型:整数')
temp=user_num.isdigit()
user_num=int(user_num)
chance=2
while chance:
if user_num>com_num:
print('猜测错误,比系统数字大',user_num-com_num)
if user_num<com_num:
print('猜测错误,比系统数字小',com_num-user_num)
if user_num==com_num:
print('恭喜您猜测正确!')
break
if chance==2:
print('您还有2次机会')
if chance==1:
print('您还有1次机会')
user_num=input('猜测错误,请重新输入')
temp=user_num.isdigit()
while temp!=0:
user_num=input('请输入正确数据类型:整数!')
temp=user_num.isdigit()
user_num=int(user_num)
chance-=1
if chance==0:
print('很遗憾您没有机会了')
print('游戏结束')
—————————————————————————————————————————————————————————————————————分割线————————————————————————————————————————————————————————————
错误代码为:
Traceback (most recent call last):
File "C:\Users\13217\Desktop\测试.py", line 27, in <module>
user_num=int(user_num)
ValueError: invalid literal for int() with base 10: '' ''
————————————————————————————————————————————————————————分割线——————————————————————————————————————————————————————————————————————————————
求助,我看了半天都不知道哪里出了问题
—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— while temp!=0:
这里出错了,isdigit()返回的是一个boolean类型的值(True/Flase),而不是0或1,应该用
while temp == False:
正确代码如下
import random
com_num=random.randint(1,10)
user_num=input('输入您猜测的数字')
temp=user_num.isdigit()
while temp!=1:
user_num=input('请输入正确的数据类型:整数')
temp=user_num.isdigit()
user_num=int(user_num)
chance=2
while chance:
if user_num>com_num:
print('猜测错误,比系统数字大',user_num-com_num)
if user_num<com_num:
print('猜测错误,比系统数字小',com_num-user_num)
if user_num==com_num:
print('恭喜您猜测正确!')
break
if chance==2:
print('您还有2次机会')
if chance==1:
print('您还有1次机会')
user_num=input('猜测错误,请重新输入')
temp=user_num.isdigit()
while temp == False:
user_num=input('请输入正确数据类型:整数!')
temp=user_num.isdigit()
user_num=int(user_num)
chance-=1
if chance==0:
print('很遗憾您没有机会了')
print('游戏结束')
小甲鱼的铁粉 发表于 2021-1-26 14:26
这里出错了,isdigit()返回的是一个boolean类型的值(True/Flase),而不是0或1,应该用
正确代码如下
谢谢 ,我已经找到问题了在哪了。True 和 Flase 在Pythonn中分别可以用1 和 0表示 ,小甲鱼老师在课中 字符串第五讲里边有讲到过这个丫{:5_99:}我的问题出在把True当作0 使用了 我把0 改成1 代码就正常了 小甲鱼的铁粉 发表于 2021-1-26 14:26
这里出错了,isdigit()返回的是一个boolean类型的值(True/Flase),而不是0或1,应该用
正确代码如下
修改后的源代码:
import random
com_num=random.randint(1,10)
user_num=input('输入您猜测的数字')
temp=user_num.isdigit()
while temp!=1:
user_num=input('请输入正确的数据类型:整数')
temp=user_num.isdigit()
user_num=int(user_num)
chance=2
while chance:
if user_num>com_num:
print('猜测错误,比系统数字大',user_num-com_num)
if user_num<com_num:
print('猜测错误,比系统数字小',com_num-user_num)
if user_num==com_num:
print('恭喜您猜测正确!')
break
if chance==2:
print('您还有2次机会')
if chance==1:
print('您还有1次机会')
user_num=input('猜测错误,请重新输入')
temp=user_num.isdigit()
while temp!=1:
user_num=input('请输入正确数据类型:整数!')
temp=user_num.isdigit()
user_num=int(user_num)
chance-=1
if chance==0:
print('很遗憾您没有机会了')
print('游戏结束')
————————————————————————————————————————————————————————————————————————————————————————————————————————————
你复制看看 ,可以正常运行的
页:
[1]