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

2024-04-19 03:53:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个学校的项目,我有个问题。我必须为药剂师编写代码,客户可以在那里买药。所以,我需要做一些限制,哪一个不能和其他人一起去等等。下面是代码:

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=[]数组中。但是我有一个问题,因为我不知道如何在不将这些数组重置为空的情况下继续此操作。你知道吗


Tags: inputifintprintappendcenalekovirednastavakkupovine
1条回答
网友
1楼 · 发布于 2024-04-19 03:53:31

您想要做的事情的标准习惯用法是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的更多信息。你知道吗

相关问题 更多 >