【发布时间】:2018-07-17 02:56:32
【问题描述】:
所以我正在阅读 Wentworth 等人 How to Think Like a Computer Scientist 的 Python 3 指南,以尝试自学更多关于编程的知识。虽然它是一个很棒的资源,但它对于使用 Python 3 编写的风格和“最佳实践”几乎没有什么可说的。
我正在处理关于条件的章节中的一个练习题,它要求我编写一个函数,当输入一个 int 或 float 'mark' 时返回一个字符串 'grade'。
我的直接问题是关于函数中条件句的重复以及函数返回的值。是否可以以某种方式使用循环来使其更简洁,而不是一遍又一遍地编写elif 语句?此外,主要的grade 函数返回一个空的None 值;我怎样才能使这个函数“富有成效”而不是在被调用时打印None?
这是我写的:
def grade(mark):
grds = ['First','Upper Second','Second','Third','F1 Supp.','F2','F3']
if mark >= 75.0:
print("Your grade is",grds[0])
elif mark < 75.0 and mark >= 70.0:
print("Your grade is",grds[1])
elif mark < 70.0 and mark >= 60.0:
print("Your grade is",grds[2])
elif mark < 60.0 and mark >= 50.0:
print("Your grade is",grds[3])
elif mark < 50.0 and mark >= 45.0:
print("Your grade is",grds[4])
elif mark < 45.0 and mark >= 40.0:
print("Your grade is",grds[5])
elif mark < 40.0:
print("Your grade is",grds[6])
def finalmark():
mark = float(input("Enter your mark"))
fnlmark = grade(mark)
return fnlmark
print(finalmark())
【问题讨论】:
-
....你得到
None是因为你的grade函数总是返回None
标签: python python-3.x function for-loop conditional