鱼C论坛

 找回密码
 立即注册
查看: 1144|回复: 6

[已解决]第二讲课后练习题

[复制链接]
发表于 2020-7-19 22:52:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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), 请大神们解答下啊
最佳答案
2020-7-19 23:00:07


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

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

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

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

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

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-19 22:55:54 | 显示全部楼层
[b]没啥用..
但是你写的很错误啊
看注释
temp = input("请输入本次数学考试的成绩:")

if int == 100: #int是什么玩意
    print("好棒,你离女神又近了一步!")
else:
    print("小子,想要幸福,就得努力!")
正确如下
temp = input("请输入本次数学考试的成绩:")
if int(temp) == 100:#这样才对
    print("好棒,你离女神又近了一步!")
else:
    print("小子,想要幸福,就得努力!")
[/b]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-19 23:00:07 | 显示全部楼层    本楼为最佳答案   


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

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

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

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

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

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-20 06:31:44 | 显示全部楼层
guess = int(temp) 是为了将 temp 转化为整数并赋值给 guess,如果照你那么写,int 对象是不可能等于 100 的,你应该先将 temp 转化为整型再跟整型比较:
temp = input("请输入本次数学考试的成绩:")

if int(temp) == 100:
    print("好棒,你离女神又近了一步!")
else:
    print("小子,想要幸福,就得努力!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-20 10:12:01 | 显示全部楼层
Hello. 发表于 2020-7-19 22:55
没啥用..
但是你写的很错误啊
看注释

感谢大神解答~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-20 10:13:28 | 显示全部楼层
Twilight6 发表于 2020-7-19 23:00
第一个代码有错误,你直接输入 int 是个函数体,而这个函数体不可能会等于一个整数的,所以第一个代码 ...

感谢大神解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

感谢大神解答~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 23:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表