0
この質問は何度も尋ねられていますが、私のコードではまだ問題が見つかりません。私のプログラムは等級計算機です。ここでTypeError: 'float型'の非整数でシーケンスを掛けることができません - floatに変換した後
Traceback (most recent call last):
File "/Users/Jeremy/Documents/Python Projects/Mosier_Jeremy_HW4.py", line 59, in <module>
main()
File "/Users/Jeremy/Documents/Python Projects/Mosier_Jeremy_HW4.py", line 53, in main
total = calcTotal (entry_exam1, entry_exam2, entry_exam3, entry_hw, entry_lqr, entry_fp)
File "/Users/Jeremy/Documents/Python Projects/Mosier_Jeremy_HW4.py", line 29, in calcTotal
total = float ((exam1 * EXAM1_WEIGHT) + (exam2 * EXAM2_WEIGHT) + (exam3 * EXAM3_WEIGHT) + (hw * HW_WEIGHT) + (lqr * LQR_WEIGHT) + (fp * FP_WEIGHT))
TypeError: can't multiply sequence by non-int of type 'float'
が私のコードです:私はこのエラーが発生した成績を入力した後
EXAM1_WEIGHT = .2
EXAM2_WEIGHT = .2
EXAM3_WEIGHT = .2
HW_WEIGHT = .2
LQR_WEIGHT = .1
FP_WEIGHT = .1
def entry_validation (assignment) :
entry = -1
while entry == -1:
entry = input ('What was your final score for ' + assignment + '? ')
if entry == '':
entry = -1
print ('ERROR: You cannot leave this field blank. Please try again.')
else:
entry = float (entry)
if entry < 0 or entry > 100:
entry = -1
print ('ERROR: You score must be between 0 and 100. Please try again.')
return assignment
def calcTotal (exam1, exam2, exam3, hw, lqr, fp) :
total = float ((exam1 * EXAM1_WEIGHT) + (exam2 * EXAM2_WEIGHT) + (exam3 * EXAM3_WEIGHT) + (hw * HW_WEIGHT) + (lqr * LQR_WEIGHT) + (fp * FP_WEIGHT))
return total
def calcLetter (total) :
if total < 89.5:
return 'A'
elif total < 79.5:
return 'B'
elif total < 69.5:
return 'C'
elif total < 59.5:
return 'D'
else:
return 'F'
def main() :
entry_exam1 = entry_validation ('Exam 1')
entry_exam2 = entry_validation ('Exam 2')
entry_exam3 = entry_validation ('Exam 3')
entry_hw = entry_validation ('Homework')
entry_lqr = entry_validation ('Language Quick Reference')
entry_fp = entry_validation ('Final Project')
total = calcTotal (entry_exam1, entry_exam2, entry_exam3, entry_hw, entry_lqr, entry_fp)
letter = calcLetter (total)
print ('Your total score is a(n): ', format (total, ',.2%'))
print ('Your final letter grade is a(n): ', letter)
main()
ありがとうございました!それが問題でした。プログラムはすぐにうまくいきます。 –