1

投稿用に簡略化しました(ほとんどの「」は、完全に機能するプログラム内の実際のコードです):

studentName = ""

def getExamPoints (total):

"calculates examPoints here"

def getHomeworkPoints (total):
"calculates hwPoints here"

def getProjectPoints (total):
"calculates projectPoints here"

def computeGrade ():
if studentScore>=90:
     grade='A'
elif studentScore>=80:
        grade='B'
elif studentScore>=70:
        grade='C'
elif studentScore>=60:
        grade='D'
else:
    grade='F'


def main():

classAverage = 0.0      # All below is pre-given/ required code
classAvgGrade = "C"

studentScore = 0.0
classTotal = 0.0
studentCount = 0
gradeReport = "\n\nStudent\tScore\tGrade\n============================\n"

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

while studentName != "quit":

    studentCount = studentCount + 1

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

    studentScore = examPoints + hwPoints + projectPoints #(<---- heres where my problem is!)

    studentGrade = computeGrade (studentScore)


main()

それは言い続けます:

ファイル「/home/hilld5/DenicaHillPP4.py」、65 行目、メインの StudentScore = ExamPoints + hwPoints + projectPoints

TypeError: + のサポートされていないオペランド型: 'NoneType' および 'NoneType'

非型エラーについて学んだことも聞いたこともありません。グーグルで調べても、実際には理解できませんでした。何が起こっているか理解している/nonetype とは何かを知っていると思う人はいますか?

4

2 に答える 2

4

Noneこれは、値が(NoneTypeは「値の型」)であるという Python の言い方にすぎませNoneん。

その理由Noneは、関数が実際には値ではないためです。return関数を呼び出した結果を代入すると、単に代入されNoneます。

例として:

>>> def foo():
...   x = 1
...
>>> print foo()
None
>>> def bar():
...   x = 1
...   return x
...
>>> print bar()
1
于 2013-03-01T07:03:27.023 に答える
1

NoneTypeのタイプですNone。そのような単純な。これは、次のようなことをしていることを意味します。

a = b = None
c = a + b
于 2013-03-01T07:04:17.910 に答える