米哈伊尔 发表于 2021-1-1 15:57:01

根据第2课小游戏改动的升级版

各位大神能帮我看看为啥不对吗?

昨非 发表于 2021-1-1 15:59:14

把代码复制发出来
这要对着图片不太好找

Daniel_Zhang 发表于 2021-1-1 16:00:22

本帖最后由 Daniel_Zhang 于 2021-1-1 16:06 编辑

你知道第三行的 int() 是在干嘛吗?

int(temp)

我记得小甲鱼在最开始的时候有讲, int() 是强制转换成 int 类型。你一个文字怎么转换成 int 呢

只有当你输入的为数字的时候,才需要用 int() 强制转换,因为 input() 那里获取的输入是一个 str 类型,如果不强制转换成 int 的话,无法和数字进行比较

比如说:

'1' > 0 这个是有问题的,因为 '1' 是str 0 是 int,类型不同无法比较

但是你这里,输入的是一个 str '女',你比较的时候是 if temp == '女' 也就是 str 和 str 进行对比,所以此处你再用 int 强制转换就变成了 int 和 str 的对比了。先不说 '女' 能不能转换成 int,就算能,int 和 str 的对比也是会有语法问题的

昨非 发表于 2021-1-1 16:00:39

男和女这是汉字,属于字符串
是不能通过int()转化为整体的

米哈伊尔 发表于 2021-1-1 16:04:42

再次试了改动还是不行,恳请指点。

昨非 发表于 2021-1-1 16:05:42

print("-----------我爱鱼c工作室----------")
guess = input("不妨猜一下我是男是女:")#input的返回值就是字符串不用转换
if guess=="女":#等号后面也要带引号,表示字符串
    print("卧槽,你居然猜对了")
    print("猜对了也没有奖励")
if guess=="男":#也可以用else
    print("猜错了,我是女的")
print("游戏结束")


详细的解释在注释里,其他的不懂的话可以继续问哈
满意的话请设置为最佳答案

米哈伊尔 发表于 2021-1-1 16:06:25

哦,原来是这样。学的不够深入。我再学下去看看是不是字符转化的问题没理解对。

昨非 发表于 2021-1-1 16:09:14

米哈伊尔 发表于 2021-1-1 16:06
哦,原来是这样。学的不够深入。我再学下去看看是不是字符转化的问题没理解对。

类型问题往后在学学就会讲到了,不难理解

昨非 发表于 2021-1-1 16:33:16

楼主倒是设置个最佳答案再走啊{:10_277:}

米哈伊尔 发表于 2021-1-1 16:50:31

万分感谢大家的指点帮助!我给你们磕头啦!!!砰!砰!砰!

Minecraft程序猿 发表于 2021-1-1 19:13:32

甲鱼会删帖的哦
页: [1]
查看完整版本: 根据第2课小游戏改动的升级版