n = int(input("请输入科目数量:"))
numbers = []
credits = []
weight = []
numbers = input('请输入一组成绩(以空格隔开,按回车结束):').split(' ')
credits = input('请输入分数对应科目的学分(以空格隔开,按回车结束):').split(' ')
c = 0
float(c)
for credit in credits:
credit = float(credit)
c = c+credit
break
i = int(0)
while i<n:
numbers[i]=credits[i]/c
break
b=0
for a in range(n):
b=b+float(numbers[a])
print(b)
这是一个求加权平均分的程序。
错误提示:
Traceback (most recent call last):
File "F:\pythonProject\main.py", line 18, in <module>
numbers[i]=credits[i]/c
TypeError: unsupported operand type(s) for /: 'str' and 'float'
第18行numbers[i]=credits[i]/c credits[i]是str类型,但是c是float类型,所以提示str不能和float相除。应该在11行后面将转换后的credit存储在一个列表比如叫做credit_list中,用credit_list替代18行的credits
那还需要重新设一个变量x=0,然后用while x<n ,在while中让credit_list的元素和credits的元素逐个相等吗?