002课复习,到底哪儿错了
我自己按照这个语法编了一个游戏,怎么输都报错,是错在哪儿了呢。 我输 男、女、数字,都报错,报错是int(),看不懂啊print("welcom")
temp = input("猜猜我是男的还是女的")
guess = int(temp)
if guess == 男:
print("正确")
else:
print("错误")
print("下次再猜我几岁吧") int()是整型,男女是字符型,无法把字符型的男女强制转变成整型,所以报错。 本帖最后由 jackz007 于 2019-11-19 14:56 编辑
guess = int(temp)# 这一句的意思是把字符串变成整型数,例如,把 '7' 变成 7,在本例中,用的正是字符串,所以,这一句完全多余
if guess == 男: # 这一句的意思是,如果 guess 的内容是 '男' ,这个 '男' 是个字符串,必须用引号括起来
print("welcom")
guess = input("猜猜我是男的还是女的"). strip()
if guess == '男':
print("正确")
else:
print("错误")
print("下次再猜我几岁吧") welcom
猜猜我是男的还是女的男
Traceback (most recent call last):
File "C:/Users/wwzhang.LANDHIGHTECH/AppData/Local/Programs/Python/Python38/lianxi/002-2.py", line 3, in <module>
if guess == "男":
NameError: name 'guess' is not defined
>>>
================================================ RESTART: C:/Users/wwzhang.LANDHIGHTECH/AppData/Local/Programs/Python/Python38/lianxi/002-2.py ================================================
welcom
猜猜我是男的还是女的"男"
Traceback (most recent call last):
File "C:/Users/wwzhang.LANDHIGHTECH/AppData/Local/Programs/Python/Python38/lianxi/002-2.py", line 3, in <module>
if guess == "男":
NameError: name 'guess' is not defined 我改了后不管是回复“男”还是回复男,都报错。
代码倒是run出来了,怎么回复总是格式不对呢
int -->str 不用加 int,而且 “男” 是字符串,要加英文半角引号:
print("welcom")
guess = input("猜猜我是男的还是女的")
if guess == '男':
print("正确")
else:
print("错误")
print("下次再猜我几岁吧") 太烦了,直接guess == input(),
楼主知道int()执行什么操作不。。人家本来字符串,你给定义整形了,怎么会不报错呢。。
然后男要加“”,不然怎么识别出来
123这种整型不用加引号 ...
guess = input()
if guess = "男"
... temp是用户输入的数据,那么就是字符串类型了,int(temp),这不是矛盾么,int是整型,int改成String试试 搞明白int()函数是做啥的就清楚了 int定义后就变为数字了 我运行后报错是 invalid literal for int() with base 10
网上查询得知 “使用 int 对一个字符类型的数据进行强制类型转换时,要求输入的字符类型只能为整数”。
所以原代码 我无论输入男 或者 女,运行到guess = int(temp)时,就相当于把输入的文字进行强制转换成整型。
我个人的理解是 guess = int(x)这个代码只适用于 x 为数字。
修改后的代码如下:
print("welcom")
guess = input("猜猜我是男的还是女的?(请输入男 或者 女,然后按回车)") # 直接把输入内容赋值给变量guess;提示用户如何输入答案来让代码能继续运行
#去掉原int的代码
if guess == '男': #把'男' 加上单引号,表示是字符串
print("正确")
else:
print("错误")
print("下次再猜我几岁吧")
页:
[1]