各位程序员
我有个问题
我用python编写了一段代码,我们用密码向人们注册了一个保险箱
菜单中有4个选项
第一个选项是查看还有多少保险箱(1到12) 第二个选项是获得一个保险箱如果所有12个保险箱都在使用python将回答“没有保险箱了”如果有可用的保险箱,将应用一个随机的保险箱号码,您可以向其中添加密码 使用第三个选项,您可以打开保险箱
使用第四个选项,如果你不想再使用它,你可以删除你的保险柜。在这里,我的代码卡住了,我不知道如何只删除保险柜所在的行,删除后,保险柜下面的行需要向上移动,这样就没有空的空间了
要删除您的保险箱,用户需要输入他的号码,然后输入他的密码(如果与文本文件中的行匹配),选项4只需删除该行
谁能帮帮我吗
def kluis_teruggeven():是第四个选项代码所在的行
文本文件已被删除
2;peter
3;johan
6;piet
7;cheese
我的python代码:
import random
create_bestand = open('fa_kluizen.txt')
bestand = open('fa_kluizen.txt', 'r')
line = bestand.readlines()
bestand.close
def main():
while True:
menu = input("""
Welkom bij het menu!
1: Ik wil weten hoeveel kluizen nog vrij zijn
2: Ik wil een nieuwe kluis
3: Ik wil even iets uit mijn kluis halen
4: Ik geef mijn kluis terug
5: ik wil stoppen
Maak je keuze van 1/5: """)
if menu == '1':
toon_aantal_kluizen_vrij()
elif menu == '2':
nieuwe_kluis()
elif menu == '3':
kluis_openen()
elif menu == '4':
kluis_teruggeven()
elif menu == '5':
break
else:
print("Je kan alleen de nummers 1,2,3,4,5 selecteren\nprobeer opnieuw")
print(type(main))
def toon_aantal_kluizen_vrij():
available_safe = 12 - len(line)
print(f'er zijn nog {available_safe} kluizen vrij ')
return available_safe
def nieuwe_kluis():
safenumbers = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
file = open('fa_kluizen.txt', 'r')
safes = file.readlines()
for safe in safes:
safe_split = safe.split(";")
for safenumber in safe_split:
if safenumber in safenumbers:
safenumbers.remove(safenumber)
if len(safenumbers) > 0:
safe_number = random.choice(safenumbers)
print(f'u heeft kluisnummer {safe_number} gekregen')
password = input('voer een wachtwoord in voor uw kluis: ')
appendsafe = open('fa_kluizen.txt', 'a')
appendsafe.write(f'\n{safe_number};{password}')
appendsafe.close()
print(f'uw Kluis is {safe_number} toegewezen!')
else:
print('Alle kluizen zijn al gebruikt.')
file.close()
def kluis_openen():
while True:
file = open('fa_kluizen.txt', 'r')
safes = file.readlines()
safenumber = input('voer uw kluisnummer hier in: ')
password = input('voer uw wachtwoord van uw kluis hier in: ')
safenumbercode = safenumber+';'+password
for safe in safes:
safe = safe.strip()
if safenumbercode == safe:
numbercode = True
break
else:
numbercode = False
if numbercode == True:
print('Kluis is geopend')
break
else:
print('De kluisnummer en/of wachtwoord is onjuist, probeer opnieuw.')
file.close()
# 2;peter
# 3;johan
# 6;piet
# 7;amk
def kluis_teruggeven():
while True:
file = open('fa_kluizen.txt', 'r+')
safes = file.readlines()
safenumber = input('voer uw kluisnummer hier in: ')
password = input('voer uw wachtwoord van uw kluis hier in: ')
safenumbercode = safenumber + ';' + password
for safe in safes:
safe = safe.strip()
if safenumbercode == safe:
numbercode = True
break
else:
numbercode = False
if numbercode == True:
if safe.strip("\n") != numbercode:
safe.write(safe)
print('Kluis is verwijderd')
break
else:
print('De kluisnummer en/of wachtwoord is onjuist, probeer opnieuw.')
file.close()
谁能帮帮我吗
@mike67
我有一个问题
在我的第二个选项中,如果您创建一个保险柜,我写了\n这样它就开始在它下面写,但是如果我打开文件,第一行是空的,因为第一个选项说在使用1个保险柜之后,剩下10个保险柜,而不是11个
我能做些什么来解决这个问题
在删除保险柜的功能中,文件已打开,因此您可以清除文件并写入新的保险柜列表,而不必选择(已删除)保险柜
相关问题 更多 >
编程相关推荐