10-10 常见单词:访问项目Gutenberg(http://gutenberg.org/),并找一些你想分析的图书。下载这些作品的文本文件或将浏览器中的原始文本复制到文本文件中。

  可以使用count()来确定特定的单词或短语在字符串中出现的次数。例如,下面的代码计算‘row’在一个字符串中出现了多少次:


line = "Row, row, row your boat"

line.count('row')

line.lower().count('row')


  通过使用lower()将字符串转换为小写,可捕获要查找的单词出现的所有次数,而不管大小写格式如何。

  编写一个程序,它读取在项目Dutenberg中获取的文件,并计算单词’the‘在每个文件中分别出现了多少次。

filename = 'A-Case-of-Sunburn.txt'
with open(filename) as f_obj:
string = f_obj.read() num = string.lower().count('the')
print(filename + ' include ' + str(num) + " \'the\'.")

10-11 喜欢的数字:编写一个程序,提示用户输入他喜欢的数字,并使用json.dump()将这个数字存储到文件中。再编写一个程序,从文件中读取这个值,并打印消息”I know your favorite number! It's____.“。

import json

favorite_num = input("Enter your favorite number: ")

filename = 'favorite number.json'
with open(filename, 'w') as f_obj:
json.dump(favorite_num, f_obj) with open(filename) as f_obj:
number = json.load(f_obj) print("I know your favorite number! It's " + number + ".")

10-12 记住喜欢的数字:将10-11中的两部分合二为一。如果存储了用户喜欢的数字,就显示它,否则提示用户输入喜欢的数字并将其存储到文件中。运行该程序两次,看是否像预期的那样工作。

import json

filename = 'favorite number.json'
try:
with open(filename) as f_obj:
number = json.load(f_obj)
print("I know your favorite number! It's " + number + ".")
except FileNotFoundError:
favorite_num = input("Enter your favorite number: ")
with open(filename, 'w') as f_obj:
json.dump(favorite_num, f_obj)

10-13 验证用户:最后一个remember_me.py版本,假设用户要么已经输入其用户名,要么是首次运行该程序。应修改这个程序,以应对这样的情形:当前和最后一次运行该程序的用户并非同一个人。

  为此,在greet_user()中打印欢迎用户回来的消息,先询问他用户名是否是对的。如果不对,就调用get_new_username()让户输入正确的用户名。

import json

def get_stored_username():
"""如果存储了用户名,就获取它"""
filename = 'username.json'
try:
with open(filename) as f_obj:
username = json.load(f_obj)
except FileNotFoundError:
return None
else:
return username def get_new_username():
"""提示用户输入用户名"""
username = input('What is your name? ')
filename = "username.json"
with open(filename, 'w') as f_obj:
json.dump(username, f_obj)
return username def greet_user():
"""判断当前用户是否对,问候用户或存储新用户"""
username = get_stored_username()
message = "Does the " + username + " is your username? Enter yes or no: "
yes_or_no = input(message)
if yes_or_no == 'yes':
print("Welcome back, " + username + "!")
else:
username = get_new_username()
print("We'll remember you when you come back, " + username + "!") greet_user()

文件和异常的练习3——python编程从入门到实践的更多相关文章

  1. 《Python编程从入门到实践》_第十章_文件和异常

    读取整个文件 文件pi_digits.txt #文件pi_digits.txt 3.1415926535 8979323846 2643383279 下面的程序打开并读取整个文件,再将其内容显示到屏幕 ...

  2. Python编程从入门到实践笔记——异常和存储数据

    Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...

  3. Python编程从入门到实践笔记——文件

    Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...

  4. Python编程从入门到实践

    Python编程从入门到实践1 起步2 变量和简单数据类型3 列表简介4 操作列表5 if语句6 字典7 用户输入和while循环8 函数9 类10 文件和异常11 测试代码12 武装飞船13 外星人 ...

  5. 《Python编程:从入门到实践》分享下载

    书籍信息 书名:<Python编程:从入门到实践> 原作名:Python Crash Course 作者: [美] 埃里克·马瑟斯 豆瓣评分:9.1分(2534人评价) 内容简介 本书是一 ...

  6. 《python编程从入门到实践》读书实践笔记(一)

    本文是<python编程从入门到实践>读书实践笔记1~10章的内容,主要包含安装.基础类型.函数.类.文件读写及异常的内容. 1 起步 1.1 搭建环境 1.1.1 Python 版本选择 ...

  7. Python编程从入门到实践笔记——类

    Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...

  8. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...

  9. 《python编程从入门到实践》读书实践笔记(二)

    本文是<python编程从入门到实践>读书实践笔记11章的内容,主要包含测试,为体现测试的重要性,独立成文. 11 测试代码 写在前面的话,以下是我这些年开发中和测试相关的血泪史. 对于一 ...

随机推荐

  1. 机器学习之决策树原理和sklearn实践

    1. 场景描述 时间:早上八点,地点:婚介所 '闺女,我有给你找了个合适的对象,今天要不要见一面?' '多大?' '26岁' '长的帅吗?' '还可以,不算太帅' '工资高吗?' '略高于平均水平' ...

  2. 我用AI(Adobe Illustrator CS6)合并路径的两个常用方法

    作为一个切图仔,经常与设计大佬的PSD打交道,PSD里面又有各种icon图标需要导出,偷懒的方法直接导出png图片,丢个背景图上页面完美解决问题!! 第二天来个需求,能不能把这个icon图标给我换个颜 ...

  3. ModuleNotFoundError: No module named 'suit'

    ModuleNotFoundError: No module named 'suit' pip3. install suit

  4. 修改Docker容器启动配置参数

    有时候,我们创建容器时忘了添加参数 --restart=always ,当 Docker 重启时,容器未能自动启动, 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker c ...

  5. ruby-on-rails-BUG

    Ruby on Rails errors: (新手期) rails 自动化部署教程 Q1: rvm 无法使用 $ rvm use 1.9.3 --default RVM is not a functi ...

  6. sql server查看表大小

    查看SqlServer 数据库中各个表多少行 : SELECT A.NAME ,B.ROWS FROM sysobjects A JOIN sysindexes B ON A.id = B.id WH ...

  7. kafka安装运行(docker)

    zookeeper参照https://www.cnblogs.com/wintersoft/p/11128484.html mkdir /opt/kafka -pvim /opt/kafka/Dock ...

  8. adb: failed to install app-debug.apk: Failure [INSTALL_FAILED_ABORTED: User rejected permissions]

    一.使用adb 的usb真机调试,安装错误: adb: failed to install app-debug.apk: Failure [INSTALL_FAILED_ABORTED: User r ...

  9. Unity3D普通开发人员,U3D主程分别需要掌握的技能

    Unity3D普通开发人员 1.会查看和搜索unity API文档,熟悉一些3D术语单词 2.查看别人的代码,能够依葫芦画瓢 3.能够制作一些常见的UI效果,善用缓动类插件,如Do Tween pro ...

  10. Exit 与 Goto :eof 在批处理中的区别【转】

    在 CMD 命令提示符窗口直接运行: 1.) 运行 Goto :eof 后,CMD 返回并将等待下一命令. 2.) 运行 Exit 后,CMD 将直接关闭并返回到曾启动 Cmd.exe 的程序或返回到 ...