input("输入好友的信息(姓名:电话):\n") n={} while True: m=input().strip() if m.endswith('#'): break name,phone=m.split(":") n[name.strip()]=phone.strip() name = input("姓名:").strip() if name in n: print("电话:",n[name]) else: print("查无此人")
时间: 2024-02-14 11:04:52 浏览: 99
你修改后的代码已经解决了之前提到的问题,现在可以正确地将用户输入的姓名和电话存入字典 `n` 中。同时,代码还使用了更好的变量名 `m` 来代替之前的 `n`,使得代码更加清晰易懂。
这段代码仍然是一个简单的电话簿查询程序,可以让用户输入好友的信息(姓名和电话),然后通过输入姓名来查询对应的电话号码。
具体来说,代码首先创建一个空字典 `n`,然后通过一个无限循环来不断读取用户输入的好友信息。用户需要以“姓名:电话”的格式输入信息,然后程序会将姓名和电话分别提取出来,并将其作为键值对存入字典 `n` 中。如果用户输入了以“#”结尾的字符串,那么循环会终止。
接下来,程序会让用户输入要查询的姓名,并在字典 `n` 中查找对应的电话号码。如果找到了,就输出电话号码;如果没有找到,就输出“查无此人”。
总体来说,这段代码已经可以正确地实现电话簿查询的功能,不过还可以进一步优化,例如可以给用户提供更多的选项,比如可以让用户输入“添加”、“删除”等指令来对电话簿进行操作。
相关问题
input("输入好友的信息(姓名:电话):\n") n={} while True: n=input().strip() if n.endswith('#'): break name,phone=n.split(":") n[name.strip()]=phone.strip() name = input("姓名:").strip() if name in n: print("电话:",n[name]) else: print("查无此人")
这段代码是一个简单的电话簿查询程序,可以让用户输入好友的信息(姓名和电话),然后通过输入姓名来查询对应的电话号码。
具体来说,代码首先创建一个空字典 `n`,然后通过一个无限循环来不断读取用户输入的好友信息。用户需要以“姓名:电话”的格式输入信息,然后程序会将姓名和电话分别提取出来,并将其作为键值对存入字典 `n` 中。如果用户输入了以“#”结尾的字符串,那么循环会终止。
接下来,程序会让用户输入要查询的姓名,并在字典 `n` 中查找对应的电话号码。如果找到了,就输出电话号码;如果没有找到,就输出“查无此人”。
需要注意的是,代码中存在一个问题,就是将用户输入的字符串 `n` 赋值给了字典 `n`,这会导致字典 `n` 的类型从初始的空字典变成一个字符串,从而导致后续的操作出现错误。正确的做法是将用户输入的字符串拆分成姓名和电话,并将其存入字典中。
在我发给你的代码基础上,再加上下面的代码,并且整体分析详细点 def delete(self): #删除学生信息 while True: no = input('请输入要删除的学生学号:') for stu in self.stulist[::]: if stu.no == no: self.stulist.remove(stu) print('删除成功') break else: print('该学号不存在') choice = input('继续删除(y/n)?').lower() if choice == 'n': break elif choice == 'y': continue else: print('您输入只能是y/n! ') break def update(self): #修改学生信息 while True: no = input('请输入要修改的学生学号:') if self.__exists(no): for stu in self.stulist: if stu.no == no: stu.name = input('姓名:') stu.chinese = int(self.__enterScore('语文成绩:')) stu.math = int(self.__enterScore('数学成绩:')) stu.english = int(self.__enterScore('英语成绩:')) print('修改成功') break else: print('该学号不存在') choice = input('继续修改(y/n)?').lower() if choice == 'n': break elif choice == 'y': continue else: print('您输入只能是y/n! ') break def load(self,fn): #导入学生信息 if os.path.exists(fn): try: with open(fn,'r',encoding = 'utf-8') as fp: while True: fs = fp.readline().strip('\n')#删除首尾指定内容 if not fs: break else: stu = Student(*fs.split(','))#传入参数为元组 if self.__exists(stu.no): print('该学号已存在') else: self.stulist.append(stu) print('导入完毕') except:
这段代码是对已有的学生信息管理系统进行了三个功能的添加,分别是删除学生信息、修改学生信息和导入学生信息。
首先,delete()函数是用来删除学生信息的,它会通过输入学生的学号来查找要删除的学生信息,如果该学号存在于学生信息列表中,则会将该学生信息从列表中删除。如果该学号不存在,则会输出“该学号不存在”的提示信息。同时,在每次删除操作完成后,会询问用户是否继续删除,并根据用户输入的结果来决定是否继续进行删除操作。
接下来,update()函数是用来修改学生信息的,它会通过输入学生的学号来查找要修改的学生信息,如果该学号存在于学生信息列表中,则会对该学生的姓名、语文成绩、数学成绩和英语成绩进行修改。如果该学号不存在,则会输出“该学号不存在”的提示信息。同时,在每次修改操作完成后,会询问用户是否继续修改,并根据用户输入的结果来决定是否继续进行修改操作。
最后,load()函数是用来导入学生信息的,它会从指定的文件中读取学生信息,并将其添加到学生信息列表中。在读取文件的过程中,如果发现该学号已经存在于学生信息列表中,则会输出“该学号已存在”的提示信息。这个函数使用了try-except语句来处理文件读取过程中可能出现的异常情况。同时,该函数的参数fn表示要导入的文件名。
总的来说,这三个函数的添加使得学生信息管理系统更加完整和实用。用户可以通过这些功能来删除、修改和导入学生信息,从而更好地管理和维护学生信息。
阅读全文