我怎样才能修改这段代码,让它不回到函数的开头,而是回到开头之后一点?
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 章节,了解有关 while
、break
和 continue
的更多信息。
我正在做一个学校项目,但遇到了问题。我必须为客户可以买药的药剂师编写代码。所以,我需要做一些限制,哪些不能与其他的等等。这是代码:
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 章节,了解有关 while
、break
和 continue
的更多信息。