admin管理员组

文章数量:1794759

Python实训报告

Python实训报告

Python实训报告

1.列表本身是有顺序的,而且非常非常非常重要的一点,列表中的第一个数的顺序是“0”,索引是从0开始的,切记!

2.修改列表时可以用,insert(位置,内容)来修改。

3.删除列表的内容时,用del可以直接锁定列表的位置来删除,用remove(内容),会将列表了第一次出现的内容删除,pop方法是直接删除末尾的内容,也可以看做是一种变相的提取,加上位置,比如pop(位置),就可以提取任何一个位置上的内容。

4.学习时还遇到了几个非常常用的方法,可能在live里没有提到。len()来确定字符串的长度。range(数字),来生成从0开始一直到输入数字的一组连续的数字,例如输入的是10,会生成0到9的10个数。range(len()),这两者的结合可以很好的用来当做一组数据的索引,来确定数据中的位置,非常好用。

5.在写for循环时,要非常注意首行缩进,一般是缩进4个空格字符串,因为当嵌套的循环过多时,非常容易出错,系统无法识别出谁是谁的循环体。for我建议理解为遍历,就是指从头到尾看完整个数据。

6.while才是真正名义上的循环,只要满足条件就会重复进行,因此用while时一定要保证有可以结束循环的语句,比如说,用continue,break等,要不然系统就会无限进行循环。

7.range的左闭右开特性,举例子,range(1,5),以为是生成1到5折五个数字,但是根据Python左闭右开的特性,实际是生成1到4这四个数字,切记,在切片,索引中非常重要。

插入

def insert(): # 插入信 students_list = [] while True: # 循环输入 Id = input(‘请输入Id:’) if not Id: # 防止手滑 print(‘Id有误’) break Name = input(‘请输入名字:’) if not Name: print(‘姓名有误’) break

try: English = int(input('请输入英语成绩:')) Python = int(input('请输入Python成绩:')) Java = int(input('请输入Java成绩:')) except: print('输入有误,不是有效整数,请重新输入') continue # 将录入的成绩存储到字典中 student = {'Id': Id, 'Name': Name, 'English': English, 'Python': Python, 'Java': Java, 'Total': English + Python + Java} # 将录入的成绩保存到列表中 students_list.append(student) # 将字典保存到列表中 answer = input('继续录入请输入Y/y:') if answer in ['Y', 'y']: continue else: save(students_list) break 删除

def delete(): # 删除 fileName_new = input(‘请输入需要打开的学生信文件名:’) + ‘.txt’ if os.path.exists(fileName_new): # 确定文件是否存在 while True: # 循环删除操作 with open(fileName_new, ‘r’, encoding=‘utf-8’) as file: file_old = file.readlines() # 读取旧信 if file_old: # 如果信不为空 show_student(file_old) # 先展示下 flag = False # 判断是否删除了 student_Id = input(‘请输入要删除学生的Id:’) # 存学生Id if student_Id: # 判断学生Id是否合法 with open(fileName_new, ‘w’, encoding=‘utf-8’) as newfile: # 打开新的同名文件 for item in file_old: # 逐个读取学生信 d = dict(eval(item)) # 变成字典 if d[‘Id’] != student_Id: # 如果不匹配就写入 newfile.write(str(d) + ‘\\n’) # 要把字典变成字符串导入 else: # 匹配就显示然后跳过 print(format_title.format(d[‘Id’], d[‘Name’], d[‘English’], d[‘Python’], d[‘Java’], d[‘Total’])) flag = True # 标记为已经删除 if flag: print(f’Id为{student_Id}的学生信已经被删除’) else: print(f’没有找到Id为{student_Id}的学生信’) choose = input(‘是否继续删除y/n:’) if choose == ‘y’: continue else: break else: print(‘学生Id输入非法,请重新输入’) continue else: print(‘无学生信’) else: print(‘输入的文件不存在’)

修改

def modify(): # 修改 和删除差不多,就直接CV了。。。 fileName_new = input(‘请输入需要打开的学生信文件名:’) + ‘.txt’ if os.path.exists(fileName_new): # 确定文件是否存在 with open(fileName_new, ‘r’, encoding=‘utf-8’) as file: # 读取旧信 file_old = file.readlines() if file_old: while True: # 循环修改操作 show_student(file_old) # 展示 flag = False # 判断是否修改 student_Id = input(‘请输入要修改学生的Id:’) # 存学生Id if student_Id: # 判断学生Id是否合法 with open(fileName_new, ‘w’, encoding=‘utf-8’) as newfile: # 打开新的同名文件 for item in file_old: # 逐个读取学生信 d = dict(eval(item)) # 变成字典 if d[‘Id’] != student_Id: # 如果不符合就写入 newfile.write(str(d) + ‘\\n’) else: # 符合就显示然后修改 print(f’Id为{student_Id}的学生信为{item}’, end=’’) print(‘请输入修改后的数据’) while True: Id = input(‘请输入Id:’) if not Id: print(‘Id有误’) break Name = input(‘请输入姓名:’) if not Name: print(‘姓名有误’) try: English = int(input(‘请输入英语成绩:’)) Python = int(input(‘请输入Python成绩:’)) Java = int(input(‘请输入Java成绩:’)) except: print(‘您输入的成绩不是正常整数,请重新输入’) continue student = {‘Id’: Id, ‘Name’: Name, ‘English’: English, ‘Python’: Python, ‘Java’: Java, ‘Total’: English + Python + Java} newfile.write(str(student) + ‘\\n’) flag = True # 标记为已经删除 break if flag: print(f’Id为{student_Id}的学生信已经修改’) else: print(f’没有找到Id为{student_Id}的学生信’) choose = input(‘是否继续修改y/n:’) if choose == ‘y’: # 也可以直接调用自身函数进行重复修改 continue else: break else: print(‘学生Id输入非法,请重新输入’) continue else: print(‘读取学生信为空’) else: print(‘输入的文件不存在’)

本文标签: 实训报告Python