首页 > 解决方案 > 在 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()
 

标签: pythonpython-3.x

解决方案


我认为您误解了该return声明的工作原理。

您的程序“继续”的原因......它没有继续 - 您再次专门调用您的main程序。如果您只是想返回调用位置并继续,请使用

return

你用过

return main()

这是一个再次调用的命令main,等待它完成,然后将该值发送回调用该函数的任何对象。


推荐阅读