我怎样才能修改这段代码,让它不回到函数的开头,而是回到开头之后一点?

How can I modify this code so it doesn't go back to the beginning of the function, but a little bit after the beginning?

我正在做一个学校项目,但遇到了问题。我必须为客户可以买药的药剂师编写代码。所以,我需要做一些限制,哪些不能与其他的等等。这是代码:

def prodajLek():
    lekovi = Fajl1.UcitavanjeLekova()
    lekoviRed = []
    brojacZaForPetlju = 1
    n = 0
    cena = 0
    kolicina = []
    korpa = []
    rednibrojevilekova = []
    ukupnacena = 0
    print("  Fabricki naziv     Genericki naziv    Serijski broj    Kolicina        Cena  \n")
    for i in lekovi:
        x = i.strip().split("|")
        lekoviRed.append(x)
        if lekoviRed[n][5] == "False":
            print(brojacZaForPetlju,"\t {:10} \t {:10} \t\t\t {:3} \t\t\t {:4} \t\t  {:5}".format(x[0],x[1],x[2],x[3],x[4]))
        brojacZaForPetlju = brojacZaForPetlju + 1
        n = n + 1
    print("\n\n\n\n")
    rednibrleka = input("Izaberite redni broj leka koji zelite da prodate:\n>>\t")
    rednibrleka = int(rednibrleka)
    rednibrleka = rednibrleka - 1
    rednibrojevilekova.append(rednibrleka)
    kolicinaZahteva = input("Koju kolicinu zelite da prodate?\n>>\t")
    kolicinaZahteva = int(kolicinaZahteva)
    if kolicinaZahteva > int(lekoviRed[rednibrleka][3]):
        print("Nema toliko na lageru!\n")
        Fajl1.LekarMenu()
    kolicina.append(kolicinaZahteva)
    cena = int(lekoviRed[rednibrleka][4])
    korpa.append(cena)
    print("Da li zelite da kupite jos lekova?\n1.Da\n2.Ne\n")
    nastavakKupovine = input(">>")
    if nastavakKupovine == "1":
        prodajLek()

    elif nastavakKupovine == "2":
        Fajl1.LekarMenu()

因此,当我到达 nastavakKupovine 输入时,当我按 1 时,我需要继续购物并将我的行号、我的价格和数量存储在数组 rednibrojlekova = [] 、 korpa = [] 和 kolicina = [ ].但是我有一个问题,因为我不知道如何在不将这些数组重置为空的情况下继续此操作。

您想要执行的操作的标准用法是 while True 循环。这里没有展示如何更改您的(相当长的)函数,而是一个非常简单的函数,希望以直接的方式展示原理:

def ask():
    answers = []
    while True:
        response = input("What do you have to say? ")
        answers.append(response)
        check = input("Type 'q' to quit, anything else to repeat: ")
        if check == "q":
            break
        else:
            continue
    return answers

对于这个简单的函数,else: continue 部分不是必需的,因为无论如何循环都会继续,但我已经包含它以便您了解如何使用它。

下面是函数的一个例子:

>>> ask()
What do you have to say? Something
Type 'q' to quit, anything else to repeat: 
What do you have to say? Another thing
Type 'q' to quit, anything else to repeat: 
What do you have to say? Ok, done
Type 'q' to quit, anything else to repeat: q
['Something', 'Another thing', 'Ok, done']
>>> 

您可以阅读官方 Python 教程的 More Control Flow Tools 章节,了解有关 whilebreakcontinue 的更多信息。