Python为true时,Try/Except返回值
当我在创建变量并将while设置为True之后尝试返回值时,try/except命令,变量不会返回值。我正在尝试全球化这个“起点”,以便它可以被使用Python为true时,Try/Except返回值,python,while-loop,return,global,try-except,Python,While Loop,Return,Global,Try Except,当我在创建变量并将while设置为True之后尝试返回值时,try/except命令,变量不会返回值。我正在尝试全球化这个“起点”,以便它可以被使用 def start_time(): while True: try: starting = int(input("Please enter a starting hour(HH): ")) if starting < 0: print("T
def start_time():
while True:
try:
starting = int(input("Please enter a starting hour(HH): "))
if starting < 0:
print("There are no negative hours!")
elif starting > 24:
print("There are only 24 hours in a day!")
else:
break
except ValueError:
print("Please enter in a correct format (HH)")
return starting
def end_time():
while True:
try:
ending = int(input("Please enter an ending hour (HH): "))
if ending < starting:
print("You can only plan a day!")
elif ending < 0:
print("There are only 24 hours in a day!")
elif ending > 24:
print("There are only 24 hours in a day!")
else:
break
except ValueError:
print("Please enter in a correct format (HH)")
return ending
#obtain starting and ending time
start_time()
end_time()
#confirm starting and ending time
def start_time():
尽管如此:
尝试:
起始=整数(输入(“请输入起始小时):”)
如果启动<0:
打印(“没有负小时!”)
elif启动>24:
打印(“一天只有24小时!”)
其他:
打破
除值错误外:
打印(“请输入正确格式(HH)”)
回程起动
def end_time():
尽管如此:
尝试:
ending=int(输入(“请输入结束小时(HH):”)
如果结束<开始:
打印(“您只能计划一天!”)
elif结束<0:
打印(“一天只有24小时!”)
elif结束>24:
打印(“一天只有24小时!”)
其他:
打破
除值错误外:
打印(“请输入正确格式(HH)”)
返回结束
#获取开始和结束时间
开始时间()
结束时间()
#确认开始和结束时间
谢谢好的,为了实现您的既定目标,需要进行一次修改: 替换:
start_time()
与
调用一个函数时,如果该函数返回的值没有明确的放置位置,python将丢弃该值。将
starting
设置为全局,而将starting
值返回给调用方。如有可能,应避免使用global。阅读为什么这是一个糟糕的设计。为了更好地实现,您的调用者应修改为:
starting = start_time()
现在在启动
中获得启动时间
同样地
ending = end_time()
结束时间在结束
中获得
而且pass
不会在循环时中断无限。它不执行任何操作,但在语法上需要语句但程序不需要操作时使用。使用中断
代替通过
。它退出最里面的循环
阅读break
的用法,当输入正确时,您永远不会中断while循环。将pass
替换为break
(或提前返回)。还有一件事:您需要将if语句的else分支上的pass更改为break,或者更有效地将return语句放在那里,否则您将永远无法退出无限循环!
ending = end_time()