Python - TypeError: unsupported operand type(s) for /: 'int' and 'NoneType'
问题
我正在制定一个能告诉你成绩的计划。我已经得到了所有的用户输入,现在我需要做一些计算。当调用计算加权平均值时,我的问题就出现了。它将参数作为整数(至少我认为它是这样的:我要求它向
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | def main(): tests = get_initial_input("tests") assignments = get_initial_input("assignments") exercises = get_initial_input("exercises") labs = get_initial_input("labs") finals = get_initial_input("finals") testsp = get_percents(tests ,"tests") assignmentsp = get_percents(assignments,"assignments") exercisesp = get_percents(exercises,"exercises") labsp = get_percents(labs,"labs") finalsp = get_percents(finals,"finals") testst = get_totals(tests,"tests") assignmentst = get_totals(assignments,"assignments") exercisest = get_totals(exercises,"exercises") labst = get_totals(labs,"labs") finalst = get_totals(finals,"finals") testss = get_scores(tests,"tests") assignmentss = get_scores(assignments,"assignments") exercisess = get_scores(exercises,"exercises") labss = get_scores(labs,"labs") finalss = get_scores(finals,"finals") testsz = calculate_weighted_average(testss, testst, testsp) assignmentsz = calculate_weighted_average(assignmentss, assignmentst, assignmentsp) exercisesz = calculate_weighted_average(exercisess, exercisest, exercisesp) labsz = calculate_weighted_average(labss, labst, labsp) finalsz = calculate_weighted_average(finalss, finalst, finalsp) def get_initial_input(x): val = int(input("How many"+ x +" were there? ")) return val def get_percents(x, string): if x > 0: xp = int(input("What percentage are"+ string +" weighted? ")) return xp def get_totals(x, string): if x > 0: xt = int(input("How many total points available in the"+ string +" category? ")) return xt def get_scores(x, string): total = 0 for y in range(x): xs = int(input("Scores for"+ string +" ?: ")) total = total + xs return total def calculate_weighted_average(x, y, z): print(x, y, z) this = ( x / y ) * z return this main() |
追溯
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | How many tests were there? 2 How many assignments were there? 0 How many exercises were there? 0 How many labs were there? 0 How many finals were there? 0 What percentage are tests weighted? 20 How many total points available in the tests category? 20 Scores for tests ?: 20 Scores for tests ?: 20 40 20 20 0 None None Traceback (most recent call last): File"assignment7.py", line 61, in <module> main() File"assignment7.py", line 23, in main assignmentsz = calculate_weighted_average(assignmentss, assignmentst, assignmentsp) File"assignment7.py", line 49, in calculate_weighted_average this = ( x / y ) * z TypeError: unsupported operand type(s) for /: 'int' and 'NoneType' |
号
提前谢谢你
您需要调整您的
例如:
1 2 3 4 5 | def get_percents(x, string): xp = 0 if x > 0: xp = int(input("What percentage are"+ string +" weighted? ")) return xp |
也:
1 2 3 4 5 | def get_totals(x, string): xt = 0 if x > 0: xt = int(input("How many total points available in the"+ string +" category? ")) return xt |
号
功能
1 2 3 4 | def get_totals(x, string): if x > 0: xt = int(input("How many total points available in the"+ string +" category? ")) return xt |
当