python - 在 python-3.x 之后如何打印并使程序不执行任何操作
问题描述
我想在其他输入中打印出错误代码“DAT_GRESKA”或“GRESKA”,然后让代码什么都不做,但在我的情况下,它让我回去并要求我重做输入,因为它是错误的。如何让它停止但不使用 exit() 或 quit()。
import csv
def unos_csv():
ucsv = input("Unesi CSV datoteku: ")
if ucsv == 'raspored1.csv' or ucsv == 'raspored2.csv':
ucsv = str(ucsv)
return ucsv
else:
print('DAT_GRESKA')
return main()
def ime_predmeta():
subname = input("Unesi kod predmeta: ")
if subname.isupper():
return subname
else:
print("GRESKA")
return main()
def obrada():
file = open(unos_csv(), "r")
reader = csv.reader(file, delimiter=',')
predmet = ime_predmeta()
with open(predmet + '.txt', 'a')as a:
for row in reader:
danu_nedelji = int(row[0])
dejan = row[3].split('[')[1].split(']')[0]
if predmet in row[3]:
t1 = row[1]
t2 = row[2]
h1, m1 = t1.split(':')
h2, m2 = t2.split(':')
t11 = int(h1) * 60 + int(m1)
t22 = int(h2) * 60 + int(m2)
tkon = t22 - t11
tkon = str(tkon)
if danu_nedelji == 0:
a.write("Monday" + ' ' + row[1] + ' ' + row[2] + ' ' + tkon + ' ' + dejan + '\n')
elif danu_nedelji == 1:
a.write("Tuesday" + ' ' + row[1] + ' ' + row[2] + ' ' + tkon + ' ' + dejan + '\n')
elif danu_nedelji == 2:
a.write("Wednesday" + ' ' + row[1] + ' ' + row[2] + ' ' + tkon + ' ' + dejan + '\n')
elif danu_nedelji == 3:
a.write("Thursday" + ' ' + row[1] + ' ' + row[2] + ' ' + tkon + ' ' + dejan + '\n')
elif danu_nedelji == 4:
a.write("Friday" + ' ' + row[1] + ' ' + row[2] + ' ' + tkon + ' ' + dejan + '\n')
a.close()
def main():
obrada()
if __name__ == '__main__':
main()
解决方案
我认为您误解了该return
声明的工作原理。
您的程序“继续”的原因......它没有继续 - 您再次专门调用您的main
程序。如果您只是想返回调用位置并继续,请使用
return
你用过
return main()
这是一个再次调用的命令main
,等待它完成,然后将该值发送回调用该函数的任何对象。
推荐阅读
- r - 应用 if 函数根据另一个变量的值来识别变量的值
- c# - 将控件拖到窗体上时出现 NullReferenceException
- bash - 在 Docker 容器中运行多个 ROS 进程
- c# - 替换文本后删除 HTML 电子邮件 css
- javascript - 仅返回 JSON 的特定元素
- azure - 我正在从 Logic App 调用 MS-Graph 并收到“未经授权”错误
- java - ExecutorCompletionService 和 FixedThreadPool 执行器之间的区别
- python - 如何设置特定范围,以便获取该范围的值并在 python 中运行
- python-3.x - 使用iter方法的无限循环
- sql - Postgres 在 where 子句中引用子查询结果