刚学的python,练习的代码

python学习网 2017-12-08 11:51:01
  1 # coding:utf-8
  2 import os
  3  # 声明一个空列表存储学员的姓名  
  4 member_list = []
  5 # 读取本地文件生数据,将本地数据添加至member_list 中 即可没保证第二次运行member_list
  6 if os.path.exists('student.txt'):
  7     file_test = open('student.txt','r')
  8     name_list = file_test.readlines()
  9     # 将name_list 中的姓名进行处理,去除姓名中的\n
 10     for name in name_list:
 11         res = name.strip('\n')
 12         # 将处理完成的姓名添加至member-list
 13         member_list.append(res)
 14     file_test.close()
 15 else:
 16     print '文件不存在!'
 17 while 1:
 18     print"""
 19       1.添加学员姓名
 20       2.修改学员姓名
 21       3.查询学员姓名
 22       4.删除学员姓名
 23       0.退出程序
 24       """
 25     select_operation = input('请输入操作编号')
 26     # 循环判断输入的编号是否存在
 27     while select_operation<0 or select_operation>4:
 28         select_operation = input('编号不存在,请输入操作编号')
 29     # 判断每一种编号,设置相应的逻辑
 30     if select_operation == 1:
 31         # 添加操作
 32         member_name = raw_input('请输入学员姓名:')
 33         # 将姓名添加到列表中
 34         member_list.append(member_name)
 35         print '-----添加成功 \n'
 36     elif select_operation == 2:
 37         # 修改学员姓名
 38         # 先查询所有的学员姓名,然后给每一个学员设置编号,方便修改
 39         for x in xrange(0,len(member_list)):
 40             # 先以x为索引去除列表的每一个值,
 41             name= member_list[x]
 42             print x+1,' .',name
 43             # 获取输入的学员编号,因为要根据编号修改学员姓名信息. 
 44         select_number = input('请输入要修改的学员编号:')
 45             # 循环检测编号是否正确
 46         while select_number < 1 or select_number>len(member_list):
 47             select_number = input('学员编号不存在,重新输入:')
 48                 # 根据获取的编号修改列表的数据
 49                 # 获取控制台输入的新的学员姓名
 50         new_name = raw_input('请输入修改后的姓名:')
 51         member_list[select_number-1] = new_name
 52         print '数据修改成功!n'
 53     elif select_operation == 3:
 54         print '1-根据学员编号查询信息'
 55         print '2-查询所有学员'
 56         select_number = input('请选择查询操作:')
 57         while select_number != 1 and select_number !=2 :
 58             select_number = input('请重新选择查询操作:')
 59         if select_number ==1:
 60             number = input('请输入查询编号:')
 61             while number < 1 or number>len(member_list):
 62                 number = input('学员编号不存在,重新输入:')
 63             print member_list[number-1]
 64         else:
 65             for x in xrange(0,len(member_list)):
 66                 # 先以x为索引去除列表的每一个值,
 67                 name= member_list[x]
 68                 print x+1,' .',name           
 69     elif select_operation == 4:
 70         print '1-根据序号删除'
 71         print '2-根据姓名删除'
 72         print '3-删除所有学员'
 73         number = input('选择删除操作:')
 74         while number != 1 and number != 2 and number != 3 :
 75             number = input('选择正确的删除操作:')
 76         if number ==1:
 77             num = input('请输入学员序号: ')
 78             while num<0 or num>len(member_list):
 79                 num = input('请输正确的入学员序号: ')                   
 80             member_list.pop(num)
 81             print '删除成功\n'
 82         elif number  == 2:
 83             name = raw_input('请输入姓名:')
 84             # 判断名字是否在在列表中,不存在返回true 整体成立,如果存在则返回flase 条件为假
 85             while name not in member_list:
 86                 name = raw_input('名字不存在,重新输入:')
 87             member_list.remove(name)
 88             print '删除成功\n'
 89         else:
 90             while len(member_list):
 91                 del member_list[0]
 92             print '删除成功\n'
 93     else:
 94         # 退出
 95         break
 96     #因为 member_list列表在进行增删改查之后,保存的数据都是最新的数据,直接将列表的所有数据全部写到本地文件中.
 97     file_test = open('student.txt','w')
 98     for x in xrange(0,len(member_list)):
 99         name = member_list[x]
100         # 取出姓名之后,每循环一次,将取出的姓名写入到本地。
101         file_test.write(name)
102         file_test.write('\n')
103     # 关闭文件
104     file_test.close()

 

阅读(720) 评论(0)