我有一个包含ID、学生名和其他属性的txt文件。我被要求给予用户选择从文件中删除学生名,方法是只要求他们输入ID或姓名。有什么想法吗?
ID Name
例如[“102”、“迈克尔·Jackson”、“3”、“54”、“30”、“84”]
def getlist():
fp = open("student.txt", "r")
list = fp.readlines()
for i in range(len(list)):
list[i] = list[i].split(";")
return list
print("removing Students from the class based on")
print("1-ID\t2-Student Name")
fp=open("student.txt","r")
list = getlist()
c=int(input("Enter your choice:"))
if(c==1):
a=int(input("Enter the ID to remove:"))
for i in range(1,len(list)):
if a==int(list[i][0]):
list.remove(list[i])
else:
b=input("Enter the Student name to remove")
print("Records found under the name"+"("+b+")")
for i in range(len(list)):
if b==list[i][1]:
print(list[i],end=" ")
print("\n")
####this is for students with the same name
z=int(input("Please select which record ID to remove:"))
for i in range(1,len(list)):
#print(i)
if z==int(list[i][0]):
list.remove(list[i])
break
1条答案
按热度按时间ecbunoof1#
你的项目几乎完成了。你只需要创建一个函数来保存文件。
备注:
getlist
重命名为load_records
。“get”表示立即执行的操作;“load”表示重新获取某个东西,将“list”重命名为“records”(或“pupuls”,或“db”),因为它更具描述性(在Python中,将变量命名为“list”并不是一个好主意,因为它是内置函数的名称)。a
、b
、z
重命名为name
、id
。save_records
。for i in range(len(list))
样式。例如,代替:
执行:
(More有经验的程序员会将该函数写成:
)
执行:
(有经验的程序员只会写
print([ rec for rec in records if rec[1] == b ])
。)