首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数中未正确添加的数字

函数中未正确添加的数字
EN

Stack Overflow用户
提问于 2022-02-02 16:36:19
回答 3查看 80关注 0票数 -3

例如,如果我输入数字'5','5','3','4‘,我得到'5534’。我想得到“17”,有人能给我解释一下怎么回事吗?

代码语言:javascript
复制
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()
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-02-02 16:40:34

在添加数字之前,需要将数字转换为整数。例如:

代码语言:javascript
复制
scoregrade = int(gradeforstep1) + int(gradeforstep2) + int(gradeforstep3) + int(gradeforstep4)

编辑

或者,您可以用int()包装输入。

代码语言:javascript
复制
stepgrade=int(input(f'Please enter a score 0 - 5 earned for understanding step {step_graded}:'))

全码

代码语言:javascript
复制
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()
票数 0
EN

Stack Overflow用户

发布于 2022-02-02 16:44:28

您的问题是对变量类型和重定向的误解。

也许仔细阅读一些免费的资源,如这些类注释,并确保您理解这些概念:Python 101:输入和转换

票数 0
EN

Stack Overflow用户

发布于 2022-02-02 16:47:16

输入返回字符串,将其转换为整数以进行数值运算。由于您有一个混乱的代码,所以我在我的解决方案中清理了它:

代码语言:javascript
复制
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))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70959344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档