怎么也搞不好
代码:
# coding:utf-8
number=['1','2','3','4','5','6','7']
lennum=len(number)
num=input('请猜一个数字')
if num>=lennum:
print('太大了!')
elif num<=lennum:
print('太小了!')
else:
print('恭喜你猜对了!')
报错:
Traceback (most recent call last):
File "D:\XXXXXXXX\XXXXXX\XX\XXXXX\XX.py", line 5, in <module>
if num>=lennum:
TypeError: '>=' not supported between instances of 'str' and 'int'
谁能解决一下?
# coding:utf-8
number=['1','2','3','4','5','6','7']
lennum=len(number) #这里最好是取一个随机数,而不是长度,否则没有猜的意义了
num=int(input('请猜一个数字')) #加一个转换就可以了。
if num>=lennum:
print('太大了!')
elif num<=lennum:
print('太小了!')
else:
print('恭喜你猜对了!')
input输入的时str字符串类型的数据,你需要使用int(num)转换成数字类型,还有,你的number里面的数字也都是字符串类型,如果要比较大小,去掉引号比较好,然后,你的lennum是获取到number的列表长度,不是列表里的数字哟,你的猜字是想猜人输入的数字跟默认的那个列表的长度是否相等么,就算你要他们相等就打印猜对了那句话,你这个也是不行的,因为你的判断条件里已经包含等==了呢,最后处理完异常,返回的也只有可能是太大或者太小,相等的时候会返回太大了
把两个变量的格式强制转换一下再比较,比如int(num)>=int(lennum)
if num>=lennum:
print('太大了!')
elif num<=lennum:
print('太小了!')