鱼C论坛

 找回密码
 立即注册
查看: 1033|回复: 3

[已解决]新手求解

[复制链接]
发表于 2020-8-17 02:30:44 | 显示全部楼层 |阅读模式

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

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

x
score = int(input("请输入一个分数:"))
lever = "a" if 100 >= score >= 90 else "b" if 90 >= score >= 0 else print("输入错误")
print(lever)


请教print(lever),输入90,返回值为a,为什么不会显示lever?


如果加入引号print("lever"),无论输入什么数字都是显示lever,并不会显示a or b
最佳答案
2020-8-17 08:50:20
你可能对变量和常量有所误解?

先说第一个问题。
请教print(lever),输入90,返回值为a,为什么不会显示lever?

lever是一个变量名,当你输入一个score,第二行代码就会给lever赋值,lever为 'a' 或 'b' 或 None。这与你输入的score有关,当score在100~90之间的话,lever='a',当score在90~0之间的话,lever='b',当score为其他值时,程序会先在IDLE中输出"输入错误",然后lever的值为print函数的返回值,即为None
程序第三行,输出lever的值,lever是什么就会输出什么
所以当你输入90的时候,第三行print输出的就是字符 a 。你若想在IDLE中显示 lever=a,那么第三行一这样写:print("lever =",lever)

再来说说第二个问题。
如果加入引号print("lever"),无论输入什么数字都是显示lever,并不会显示a or b

你若用引号括起来,那么"lever"就是一个常量了,是一个字符串,与变量lever没有什么关系,所以不管你输入什么都不影响print的输出

除了以上两个问题以外,其实你这里还有问题

1、第二行的两端if有重叠,score=90的时候,两段都符合条件

2、你好像对返回值和IDLE中断输出有误解。
请教print(lever),输入90,返回值为a

这个a不是返回值,是IDLE的终端显示,是print执行的结果,并不是返回值,print函数的返回值是None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-17 06:55:42 | 显示全部楼层
为什么不会显示 lever?


什么意思,我这里有显示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-17 08:37:13 | 显示全部楼层
lever = "a" if 100 >= score >= 90 意思是当输入分数大于等于90小于等于100时 给变量 字符串“a”取个名字叫lever。这个变量实际上是a,只是名字叫lever
所以当你要print(lever)的时候当然打出的是a。
而print(“lever”),和上面的“a”一样,用引号框住表示它是一个字符串。这串代码的意思是打印这个字符串。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-17 08:50:20 | 显示全部楼层    本楼为最佳答案   
你可能对变量和常量有所误解?

先说第一个问题。
请教print(lever),输入90,返回值为a,为什么不会显示lever?

lever是一个变量名,当你输入一个score,第二行代码就会给lever赋值,lever为 'a' 或 'b' 或 None。这与你输入的score有关,当score在100~90之间的话,lever='a',当score在90~0之间的话,lever='b',当score为其他值时,程序会先在IDLE中输出"输入错误",然后lever的值为print函数的返回值,即为None
程序第三行,输出lever的值,lever是什么就会输出什么
所以当你输入90的时候,第三行print输出的就是字符 a 。你若想在IDLE中显示 lever=a,那么第三行一这样写:print("lever =",lever)

再来说说第二个问题。
如果加入引号print("lever"),无论输入什么数字都是显示lever,并不会显示a or b

你若用引号括起来,那么"lever"就是一个常量了,是一个字符串,与变量lever没有什么关系,所以不管你输入什么都不影响print的输出

除了以上两个问题以外,其实你这里还有问题

1、第二行的两端if有重叠,score=90的时候,两段都符合条件

2、你好像对返回值和IDLE中断输出有误解。
请教print(lever),输入90,返回值为a

这个a不是返回值,是IDLE的终端显示,是print执行的结果,并不是返回值,print函数的返回值是None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 08:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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