1. # 1.统计文件数据中字母e出现的次数(不区分大小写)
    # 文件内容:hello friend, can you speak English!
    # 结果:4
    # 分析:将文件内容读出,然后统计读出的字符串中字符e的个数(字符串count功能)
  1. with open('01.txt', 'r') as f:
  2. str_1 = f.read()
  3. count_1 = str_1.lower().count('e')
  4. print(count_1)
  1. # 2.统计文件数据中出现的所有字符与该字符出现的个数(不区分大小写,标点与空格也算)
    # 文件内容:hello friend, can you speak English!
    # 结果:
    # {
    # 'h': 1,
    # 'e': 4,
    # 'l': 3,
    # 'o': 2,
    # ' ': 5,
    # ...
    # }
    # 分析:将文件内容读出,然后统计读出的字符串中每个字符的个数,形成字段(for遍历读取的字符串)
  1. dict_2 = {}
  2. list_2 = []
  3. with open('01.txt', 'r') as f:
  4. str_2 = f.read()
  5. for item in str_2:
  6. list_2.append(item)
  7. for item in list_2:
  8. k = item
  9. v = list_2.count(item)
  10. dict_2[k] = v
  11. print(dict_2)
  1. # 3.读取文件内容,分析出所有的账号及对应的密码
    # 文件内容:owen:123456|egon:123qwe|liuxx:000000
    # 结果:
    # {
    # 'owen': '123456',
    # 'egon': '123qwe',
    # 'liuxx': '000000'
    # }
    # 分析:将文件内容读出,然后按|拆分出 账号:密码 格式的子字符串,再按:拆分成 账号及密码,存放到字典中
  1. list_3 = []
  2. dict_3 = {}
  3. with open('03.txt', 'r') as f:
  4. str_3 = f.read()
  5. list_3 = str_3.split('|')
  6. for item in list_3:
  7. k, v = item.split(':')
  8. dict_3[k] = v
  9. print(dict_3)
  1. # 4.在题3的基础上,账号密码已经被存储在文件中,完成用户登录成功或失败(只做一次性判断)
    # 文件内容:owen:123456|egon:123qwe|liuxx:000000
    # 需求:输入账号、密码,然后进行登录判断,账号密码均正确打印登录成功,否则打印登录失败
    # 分析:先完成题3,分析出账号密码字典,然后拿输入的账号密码与字典中数据进行校验
  1. list_3 = []
  2. dict_3 = {}
  3. with open('03.txt', 'r') as f:
  4. str_3 = f.read()
  5. list_3 = str_3.split('|')
  6. for item in list_3:
  7. k, v = item.split(':')
  8. dict_3[k] = v
  9. while True:
  10. name = input("请输入账户名: ")
  11. if name not in dict_3:
  12. print("用户名输入错误,请重新输入!!!")
  13. continue
  14. else:
  15. print("用户名正确,请继续输入密码!!!")
  16.  
  17. psw = input("请输入密码: ")
  18. if dict_3[name] == psw:
  19. print("用户名及密码均正确,登陆成功!!!")
  20. break
  21. else:
  22. print("密码错误,登陆失败,请重新输入!!!")
  1. # 5.在题3的基础上,完成用户注册的功能(只做一次性判断)
    # 文件内容:owen:123456|egon:123qwe|liuxx:000000
    # 需求:输入注册的账号、密码,账号已存在的打印账号已存在,注册失败,相反打印注册成功,并将新账号密码录入文件
    # 结果:如果输入mac、123123 => owen:123456|egon:123qwe|liuxx:000000|mac:123123
    # 分析:先完成题3,分析出账号密码字典,然后拿输入的注册账号与字典中数据进行校验,如果校验没有新账号
    # -- 1.采用 w 模式写文件,可以在读取文件的内容后拼接 |mac:123123 字符串,将拼接后的总字符串一次性写入
    # -- 2.采用 a 模式写文件,可以直接追加写入 |mac:123123 字符串
  1. list_3 = []
  2. dict_3 = {}
  3. with open('03.txt', 'r') as f:
  4. str_3 = f.read()
  5. list_3 = str_3.split('|')
  6. for item in list_3:
  7. k, v = item.split(':')
  8. dict_3[k] = v
  9. while True:
  10. name = input("请输入账户名: ")
  11. if name in dict_3:
  12. print("用户名已存在,注册失败!!!")
  13. break
  14. else:
  15. print("新用户名添加成功!!!")
  16. psw = input("请输入密码: ")
  17. print("密码录入成功,结束注册!!!")
  18. break
  19. with open('03_2.txt', 'a', encoding='utf-8') as f:
  20. f.write('|' + name + ':' + psw)
  1. # -------------------------------------------
    # 拓展1.统计文件中大写字母、小写字母、数字及其他字符出现的次数
    # 文件内容:Abc123,-+XYZopq000.?/
    # 结果:
    # {
    # '大写字母': 4,
    # '小写字母': 5,
    # '数字': 6,
    # '其他字符': 6
    # }
    # 分析:利用ASCII表,for循环遍历每一个字符value,eg:'a' <= value <= 'z'就代表是小写字母
  1. with open('5-1.txt', 'r', encoding='utf-8') as f:
  2. str_5 = f.read()
  3. list_5 = [0, 0, 0, 0, '大写字母', '小写字母', '数字', '其他字符']
  4.  
  5. dict_5 = {}
  6. for item in str_5:
  7. if 'A' <= item <= 'Z':
  8. list_5[0] = list_5[0] + 1
  9. elif 'a' <= item <= 'z':
  10. list_5[1] = list_5[1] + 1
  11. elif '' <= item <= '':
  12. list_5[2] = list_5[2] + 1
  13. else:
  14. list_5[3] = list_5[3] + 1
  15.  
  16. for k in list_5[4:8]:
  17. dict_5.setdefault(k)
  18. dict_5[k] = list_5[list_5.index(k) - 4]
  19. print(dict_5)
  1. # 拓展2.完成登录注册系统(从空文件开始做)
    # 需求分析:
    # '''
    # 1.可以循环登录注册,输入1代表选择登录功能,输入2代表注册功能,输入0代表退出,其他输入代表输入有误,重输
    # 2.用户的账号密码信息存放在usr.txt文件中,保证用户注册成功后,重启系统,用户信息仍然保存
    # 3.登录在账号验证通过才输入密码验证登录,账号验证三次失败自动进入注册功能,登录三次验证失败自动退出系统
    # 4.第一次注册,文件写入 账号:密码 信息,再次注册追加写入 |账号:密码 信息
    #
    # 分析过程:略
  1. while True:
  2. num = input("输入1代表选择登录功能,输入2代表注册功能,输入0代表退出>>>")
  3. if num == '':
  4. print("退出!!")
  5. break
  6. elif num == '':
  7. list_3 = []
  8. dict_3 = {}
  9. with open('usr.txt', 'r', encoding='utf-8') as f:
  10. str_3 = f.read()
  11. print(str_3)
  12. list_3 = str_3.split('|')
  13. print(list_3)
  14. for item in list_3:
  15. k, v = item.split(':')
  16. dict_3[k] = v
  17. while True:
  18. name = input("注册请输入账户名: ")
  19. if name in dict_3:
  20. print("用户名已存在,注册失败!!!")
  21. break
  22. else:
  23. print("新用户名添加成功!!!")
  24. psw = input("请输入密码: ")
  25. print("密码录入成功,结束注册!!!")
  26. break
  27. with open('usr.txt', 'a+t', encoding='utf-8') as f:
  28. f.write('|' + name + ':' + psw)
  29. elif num == '':
  30. list_3 = []
  31. dict_3 = {}
  32. with open('03.txt', 'r') as f:
  33. str_3 = f.read()
  34. list_3 = str_3.split('|')
  35. for item in list_3:
  36. k, v = item.split(':')
  37. dict_3[k] = v
  38. while True:
  39. name = input("请登录输入账户名: ")
  40. if name not in dict_3:
  41. print("用户名输入错误,请重新输入!!!")
  42. continue
  43. else:
  44. print("用户名正确,请继续输入密码!!!")
  45.  
  46. psw = input("请输入密码: ")
  47. if dict_3[name] == psw:
  48. print("用户名及密码均正确,登陆成功!!!")
  49. break
  50. else:
  51. print("密码错误,登陆失败,请重新输入!!!")
  52. else:
  53. print("输入有误,请重新输入!!!")
  54. continue

PythonStudy——文件操作习题 Document operation exercises的更多相关文章

  1. Python:文件操作技巧(File operation)(转)

    Python:文件操作技巧(File operation) 读写文件 # ! /usr/bin/python #  -*- coding: utf8 -*- spath = " D:/dow ...

  2. PythonStudy——文件操作 File operation

    # 文件:就是硬盘的一块存储空间 # 1.使用文件的三步骤: # 打开文件- 得到文件对象:找到数据存放在硬盘的位置,让操作系统持有该空间,具有操作权# 硬盘空间 被 操作系统持有# 文件对象f 被 ...

  3. ios 简单的plist文件读写操作(Document和NSUserDefaults)

    最近遇到ios上文件读写操作的有关知识,记录下来,以便以后查阅,同时分享与大家. 一,简单介绍一下常用的plist文件. 全名是:Property List,属性列表文件,它是一种用来存储串行化后的对 ...

  4. C# 文件操作类大全

      C# 文件操作类大全 时间:2015-01-31 16:04:20      阅读:1724      评论:0      收藏:0      [点我收藏+] 标签: 1.创建文件夹 //usin ...

  5. HTML5 本地文件操作之FileSystemAPI实例(一)

    文件操作实例整理一 1.请求系统配额类型 console.info(window.TEMPORARY); //0 临时 console.info(window.PERSISTENT); //1 持久 ...

  6. 前端学PHP之文件操作

    × 目录 [1]文件类型 [2]文件属性 [3]目录路径[4]目录遍历[5]目录统计[6]目录增删[7]目录复制[8]文件操作[9]文件内容 前面的话 在程序运行时,程序本身和数据一般都存在内存中,当 ...

  7. Android开发7:简单的数据存储(使用SharedPreferences)和文件操作

    前言 啦啦啦~大家好,又见面啦~ 本篇博文讲和大家一起完成一个需要注册.登录的备忘录的,一起学习 SharedPreferences 的基本使用,学习 Android 中常见的文件操作方法,复习 An ...

  8. 廖雪峰js教程笔记14 file文件操作

    在HTML表单中,可以上传文件的唯一控件就是<input type="file">. 注意:当一个表单包含<input type="file" ...

  9. HTML5学习之文件操作(九)

    之前我们操作本地文件都是使用flash.silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很进行跨平台的处理,另外就是让我们的web应用依赖了第三方的插件,而不是很独立 ...

随机推荐

  1. Session 和 Cookie的区别

    2019-03-26 18:16:47 一.区别概论 Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群.数据库.文件中:Cookie是客户端保存用户信息的一种机制 ...

  2. Python进程、线程、协成

    什么是线程?程序执行的最小单位线程是进程中的一个实体,是被系统独立调度和分派的基本单位 线程的创建threading.Thread(target = 变量名) 线程的资源竞争问题线程是可以资源共享的同 ...

  3. React文档(十一)提升state

    经常有些组件需要映射同一个改变的数据.我们建议将共用的state提升至最近的同一个祖先元素.我们来看看这是怎样运作的. 在这一节中,我们会创建一个温度计算器来计算提供的水温是否足够沸腾. 我们先创建一 ...

  4. 2.2使用urllib的简单传输

    使用urllib传输文件 from urllib.request import urlopen filename = 'new_1.py' password = 'password' #如果设置密码 ...

  5. python非技术性问题整理

    针对软件安装包,安装时出现下类问题, 解决方法时, 以管理员身份运行命令行, 可以看到,包 正常安装. 在使用bs4,分析html或者xml文档时, 代码无法识别lxml 指令, 可能是python ...

  6. javascript 跨域请求详细分析(终极跨域解决办法)

    自从我接触前端以来,接手的项目里面很大部分都是前后端分离的,后端只提供接口,前端根据后端接口渲染出实际页面.个人觉得这是一个挺好的模式,前后端各自负责各自的模块,分工明确,而且也给前端更大的发挥空间. ...

  7. Costura.Fody合并DLL和EXE

    1.打开Nuget包管理器 2. 输入 Install-Package Costura.Fody -Version 3.3.0 3.之后Costura.Fody会嵌入到工程中,如果没有手动添加一下 4 ...

  8. 51单片机小项目电路TwoLed电路图

    1.复位电路没有开关,不可控 在电容旁边并联一个开关和10k的电阻支路 2.晶振电路引用的外部晶振, 理论上XTAL2悬空,XTAL1接外部震荡信号 //ProjeceName:TwoLed //wr ...

  9. usermod语法

    语法 usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G ...

  10. 【oracle入门】数据模型

    数据模式也是一这种模型,它是数据库中用于提供信息表示的操作手段的形式架构,是数据库中用来对现实世界惊喜抽象的工具.数据模型按不同的应用层次分为3种类型,分别为概念数据模型.逻辑数据模型.物理数据模型. ...