簡體   English   中英

如何修改此代碼,使它不返回到函數的開頭,而是返回到函數的開頭?

[英]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教程的“ 更多控制流工具”一章,可以找到有關whilebreakcontinue更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM