无法隐式将 int 对象转换为 str

2024-04-20 01:22:19 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我的代码的简化快照:

def getExamPoints(examPoints):
    totalexamPoints = 0 
    return totalexamPoints

def getHomeworkPoints(hwPoints):
    totalhwPoints = 0
    return totalhwPoints

def getProjectPoints(projectPoints):
    totalprojectPoints = 0
    return avgtotalprojectPoints

def computeGrade(computeGrade):
    computeGrade = 1
    return computeGrade

def main ( ):

    gradeReport = "\n\nStudent\t Score\tGrade\n=====================\n"

    studentName = input ("Enter the next student's name, or 'quit' when done: ")

    while studentName != "quit":

        examPoints = getExamPoints(studentName)
        hwPoints = getHomeworkPoints(studentName)
        projectPoints = getProjectPoints(studentName)

        studentScore = examPoints + hwPoints + projectPoints

        studentGrade = computeGrade (studentScore)

        gradeReport = gradeReport + "\n" + studentName + "\t%6.1f"%studentScore + "\t" + studentGrade** 

main ( ) # Start program

在最后一行的gradeReport赋值中得到一个错误,该行说“无法隐式地将int对象转换为str”。为什么会这样?在


Tags: returnmaindefstudentscoreprojectpointsstudentnameexampointsgetexampoints
1条回答
网友
1楼 · 发布于 2024-04-20 01:22:19

这是有问题的线路:

gradeReport = gradeReport + "\n" + studentName + "\t%6.1f"%studentScore+"\t"+studentGrad

您应该使用字符串格式,而不是简单地将字符串和整数相加(这是一个错误)。一种方法是:

^{pr2}$

还有其他方法,但是由于您已经使用了%格式,所以我在这里继续


在Python中,"5" + 5是一个错误,因为它是不明确的。它应该返回"55"10?Python要求您明确地说明这一点,而不是做出假设并有一半的时间是错误的。在

相关问题 更多 >