def main():
time = input("What time is it? ")
hours, minutes = time.split(":")
minutesToHours = float(minutes) / 60
convert(float(hours)+minutesToHours)
def convert(time):
if 7 <= time <= 8:
timetoeat = "breakfast time"
elif 12 <= time <= 13:
timetoeat = "lunch time"
elif 18 <= time <= 19:
timetoeat = "dinner time"
print(timetoeat)
if __name__ == "__main__":
main()
我已经完成了这个问题所需的输出,但是当我在 check50 中检查它时,它主要是扑克脸,这就是为什么我想改进它,但我不知道该怎么做,所以任何人都可以帮助我改进我的代码或建议我某物? cs50还要求使用“if name ==”main”:”即使他们没有教它,所以我想知道是否有人能以最简单的形式解释它的作用
注意: 由于这是一项教育练习,因此此答案旨在引导用户找到解决方案,而不是提供明确的解决方案。
__name__ == __main__
的进一步解释:请注意原则上的要求:“由
convert
调用的 main
函数“应返回 7.5”。”
但是,您的
convert
函数执行完全不同的操作。它不是 return
值,而是包含 main
应该持有的逻辑。
main
函数必须包含将时间(由convert
返回)路由到适当的文本输出的逻辑。convert
函数必须包含转换逻辑(当前保存在main
中)。convert
函数必须包含return
语句,以将转换后的十进制值返回回main
。def main():
# Prompt user for time.
# Convert time to a decimal value (call the convert function).
# Test the returned time as a decimal to determine the text
# to be displayed.
def convert(time):
# Parse the time into hours and minutes.
# Calculate the decimal form of time.
# Return the calculated value.
if __name__ == "__main__":
main()
为
timetoeat
添加默认空白值:
def convert(time):
timetoeat = ""
if 7 <= time <= 8:
timetoeat = "breakfast time"
elif 12 <= time <= 13:
timetoeat = "lunch time"
elif 18 <= time <= 19:
timetoeat = "dinner time"
print(timetoeat)
如果没有这样的声明,当
print(timetoeat)
超出用餐时间时,not defined error
将会产生time
。