例如,如果我输入数字'5','5','3','4‘,我得到'5534’。我想得到“17”,有人能给我解释一下怎么回事吗?
def grade_lab(lab_number, student_id):
student = student_id
lab_count = lab_number
step1 = '1'
gradeforstep1 = problem_solving(step1)
step2 = '2'
gradeforstep2 = problem_solving(step2)
step3 = '3'
gradeforstep3 = problem_solving(step3)
step4 = '4'
gradeforstep4 = problem_solving(step4)
scoregrade = gradeforstep1 + gradeforstep2 + gradeforstep3 + gradeforstep4
points_earned = f"Student: {student} earned {scoregrade} points on lab {lab_count}."
return points_earned
def problem_solving(step_graded):
stepgrade=input(f'Please enter a score 0 - 5 earned for understanding step {step_graded}:')
finalstepgrade = stepgrade
return finalstepgrade
def main():
labgrade = grade_lab(3, 12345)
print (labgrade)
step = input()
gradeforstep = problem_solving(step)
print(gradeforstep)
main()发布于 2022-02-02 16:40:34
在添加数字之前,需要将数字转换为整数。例如:
scoregrade = int(gradeforstep1) + int(gradeforstep2) + int(gradeforstep3) + int(gradeforstep4)编辑
或者,您可以用int()包装输入。
stepgrade=int(input(f'Please enter a score 0 - 5 earned for understanding step {step_graded}:'))全码
def grade_lab(lab_number, student_id):
student = student_id
lab_count = lab_number
step1 = '1'
gradeforstep1 = problem_solving(step1)
step2 = '2'
gradeforstep2 = problem_solving(step2)
step3 = '3'
gradeforstep3 = problem_solving(step3)
step4 = '4'
gradeforstep4 = problem_solving(step4)
scoregrade = gradeforstep1 + gradeforstep2 + gradeforstep3 + gradeforstep4
points_earned = f"Student: {student} earned {scoregrade} points on lab {lab_count}."
return points_earned
def problem_solving(step_graded):
stepgrade=int(input(f'Please enter a score 0 - 5 earned for understanding step {step_graded}:'))
finalstepgrade = stepgrade
return finalstepgrade
def main():
labgrade = grade_lab(3, 12345)
print (labgrade)
step = input()
gradeforstep = problem_solving(step)
print(gradeforstep)
main()发布于 2022-02-02 16:44:28
您的问题是对变量类型和重定向的误解。
也许仔细阅读一些免费的资源,如这些类注释,并确保您理解这些概念:Python 101:输入和转换
发布于 2022-02-02 16:47:16
输入返回字符串,将其转换为整数以进行数值运算。由于您有一个混乱的代码,所以我在我的解决方案中清理了它:
def grade_lab(lab_number, student_id):
scoregrade = 0
for i in range(1,5):
scoregrade += int(input(f'Please enter a score 0 - 5 earned for understanding step {i}:'))
return f"Student: {student_id} earned {scoregrade} points on lab {lab_number}."
if __name__ == "__main__":
print(grade_lab(3,12345))https://stackoverflow.com/questions/70959344
复制相似问题