You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:23:00