weiyideid823 发表于 2020-7-19 22:52:01

第二讲课后练习题

1. 按下面要求修改课堂中的 game.py 代码。 ?K)E5f[
QxgVGC-v)Z~sY0^BT|A] HzSy;4t
让用户输入这次数学考试的成绩。
如果分数是 100 分,显示:好棒,你离女神又近了一步^_^
如果分数不是 100 分,显示:小子,想要幸福,就得努力!


下面是我写的
temp = input("请输入本次数学考试的成绩:")

if int == 100:
    print("好棒,你离女神又近了一步!")
else:
    print("小子,想要幸福,就得努力!")


运行结果就是无论输入是否100,都只会显示else的结果

然后对比了小甲鱼的答案如下:
""" 用Python设计第一个游戏 """

temp = input("这次数学考试成绩:")
guess = int(temp)

if guess == 100:
    print("好棒,你离女神又近了一步^_^")
else:
    print("小子,想要幸福,就得努力!")
   
print("游戏结束,不玩啦^_^")

对比了下,大概知道是啥原因了但是还是不太理解这里为啥需要加上guess = int(temp), 请大神们解答下啊

Hello. 发表于 2020-7-19 22:55:54

没啥用..
但是你写的很错误啊
看注释
temp = input("请输入本次数学考试的成绩:")

if int == 100: #int是什么玩意
    print("好棒,你离女神又近了一步!")
else:
    print("小子,想要幸福,就得努力!")
正确如下
temp = input("请输入本次数学考试的成绩:")
if int(temp) == 100:#这样才对
    print("好棒,你离女神又近了一步!")
else:
    print("小子,想要幸福,就得努力!")

Twilight6 发表于 2020-7-19 23:00:07



第一个代码有错误,你直接输入 int 是个函数体,而这个函数体不可能会等于一个整数的,所以第一个代码的 if 条件永不成立

所以导致你无论输入什么,都只执行 else 的代码块

input 函数是将用户输入的数据转化为 字符串 后返回

int 函数是将其他类型的值转化为整型(整数)

而字符串 '100' 是不等于整型 100 的,这是两个不同类型的数据

所以这里要么把 input 返回的数据转化为整型,要么把 guess == 100 整型数据改成 guess == '100' 字符串数据即可达到同样的效果


zltzlt 发表于 2020-7-20 06:31:44

guess = int(temp) 是为了将 temp 转化为整数并赋值给 guess,如果照你那么写,int 对象是不可能等于 100 的,你应该先将 temp 转化为整型再跟整型比较:

temp = input("请输入本次数学考试的成绩:")

if int(temp) == 100:
    print("好棒,你离女神又近了一步!")
else:
    print("小子,想要幸福,就得努力!")

weiyideid823 发表于 2020-7-20 10:12:01

Hello. 发表于 2020-7-19 22:55
没啥用..
但是你写的很错误啊
看注释


感谢大神解答~!

weiyideid823 发表于 2020-7-20 10:13:28

Twilight6 发表于 2020-7-19 23:00
第一个代码有错误,你直接输入 int 是个函数体,而这个函数体不可能会等于一个整数的,所以第一个代码 ...

感谢大神解答

weiyideid823 发表于 2020-7-20 10:14:22

zltzlt 发表于 2020-7-20 06:31
guess = int(temp) 是为了将 temp 转化为整数并赋值给 guess,如果照你那么写,int 对象是不可能等于 100...

感谢大神解答~
页: [1]
查看完整版本: 第二讲课后练习题