新手求解
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
{:5_100:} 为什么不会显示 lever?
什么意思,我这里有显示 lever = "a" if 100 >= score >= 90 意思是当输入分数大于等于90小于等于100时 给变量 字符串“a”取个名字叫lever。这个变量实际上是a,只是名字叫lever
所以当你要print(lever)的时候当然打出的是a。
而print(“lever”),和上面的“a”一样,用引号框住表示它是一个字符串。这串代码的意思是打印这个字符串。 你可能对变量和常量有所误解?
先说第一个问题。
请教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
页:
[1]