Python中input函数变量用法及成绩计算程序返回None问题求助
解决成绩计算程序中的
input()使用问题 Hey Jessica,别着急,我来帮你搞定这个卡了一小时的问题!你遇到的asses_value始终返回None的问题,根源出在input()函数的用法上,咱们一步步拆解清楚:
问题根源
你写的这行代码有个小错误:
asses_value = int(input(print('How many marks is the', assessment[i], 'worth : ')))
print()函数的作用是在控制台输出内容,但它没有返回值(执行后会返回None)。当你把print()放在input()的参数里时,相当于给input()传了一个None作为提示文本,这就导致后续获取值的逻辑异常,最终asses_value拿到了错误的结果。
修正后的代码
我们只需要把提示字符串直接传给input(),不需要嵌套print(),同时用更简洁的方式把变量嵌入提示文本里:
assessment = [] weight = [] assign_number = int(input('How many assessments? ')) for i in range(assign_number): asses_name = input('Enter name of assessment: ') assessment.append(asses_name) # 用f-string把变量嵌入提示字符串,直观又方便 asses_value = int(input(f'How many marks is the {assessment[i]} worth: ')) weight.append(asses_value)
Python中在input()里使用变量的几种方法
这里给你介绍三种常用的方式,按需选择:
- f-string(推荐,Python 3.6+):像上面代码里的写法,用
{变量名}直接把变量嵌入字符串,语法简洁可读性强:input(f'提示文本{变量名}提示文本') - 字符串拼接:用
+把字符串和变量拼接起来,注意如果变量不是字符串类型,需要先转成str():input('How many marks is the ' + assessment[i] + ' worth: ') str.format()方法:这是比较传统的写法,适合老版本Python:input('How many marks is the {} worth: '.format(assessment[i]))
这样修改后,你的程序就能正常获取每个评估项的分数权重啦!
内容的提问来源于stack exchange,提问作者Jessica
相关产品推荐
相关产品推荐

