《Python编程:从⼊门到实践》第10章⽂件和异常课后习题(动⼿试⼀试)10-1 Python学习笔记
在⽂本编辑器中新建⼀个⽂件,写⼏句话来总结⼀下你⾄此学到的Python 知识,其中每⼀⾏都以“In Python you can”打头。将这个⽂件命名为,并将其存储到为完成本章练习⽽编写的程序所在的⽬录中。编写⼀个程序,它读取这个⽂件,并将你所写的内容打印三次:第⼀次打印时读取整个⽂件;第⼆次打印时遍历⽂件对象;第三次打印时将各⾏存储在⼀个列表中,再在with代码块外打印它们。
代码:
with open("")as f:
ad())
with open("")as f:
for i in f:
print(i)
with open("")as f:
lines = f.readlines()
print(lines)
运⾏结果:phonegap开发app
In Python you can eat.
In Python you can drink.
In Python you can sleep.
In Python you can eat.
In Python you can drink.
In Python you can sleep.
['In Python you can eat.\n','In Python you can drink.\n','In Python you can sleep.']
10-2 C语⾔学习笔记
可使⽤⽅法replace()将字符串中的特定单词都替换为另⼀个单词。下⾯是⼀个简单的⽰例,演⽰了如何将句⼦中的’dog’替换为’cat’:
常见的简单的聊天软件源码>>> message = "I really like dogs."
sql怎么读取表>>> place('dog', 'cat')
'I really like cats.'
读取你刚创建的⽂件 中的每⼀⾏,将其中的Python 都替换为另⼀门语⾔的名称,如C。将修改后的各⾏都打印到屏幕上。
代码:
with open("")as f:
content = f.read()
c = place("Python","C")
print(c)
运⾏结果:
In C you can eat.
In C you can drink.
In C you can sleep.
10-3 访客
编写⼀个程序,提⽰⽤户输⼊其名字;⽤户作出响应后,将其名字写⼊到⽂件 中。
代码:
10-6 加法运算
提⽰⽤户提供数值输⼊时,常出现的⼀个问题是,⽤户提供的是⽂本⽽不是数字。在这种情况下,当你尝试将输⼊转换为整数时,将引发TypeError 异常。编写⼀个程序,提⽰⽤户输⼊两个数字,再将它们相加并打印结果。在⽤户输⼊的任何⼀个值不是数字时都捕获TypeError 异常,并打印⼀条友好的错误消息。对你编写的程序进⾏测试:先输⼊两个数字,再输⼊⼀些⽂本⽽不是数字。
感觉有问题,并不会出现TypeError,⽽是会出现ValueError
代码:
a =input("Give me one number:")
b =input("Give me another number:")
try:
c =int(a)+int(b)
except:
print("I want number !")
else:
print(c)
运⾏结果:
Give me one number:d
Give me another number:asd
I want number !
10-7 加法计算器
将你为完成练习10-6 ⽽编写的代码放在⼀个while 循环中,让⽤户犯错(输⼊的是⽂本⽽不是数字)后能够继续输⼊数字。
代码:
while True:
a =input("Give me one number:")
b =input("Give me another number:")
try:
c =int(a)+int(b)
except ValueError:
print("I want number !")
else:
print(c)
q =input('Continue? y/n')
if q =="n":
break
运⾏结果:
javascript正则表达式截取
Give me one number:4
Give me another number:12
16
Continue? y/ny
Give me one number:23
Give me another number:45
68
Continue? y/ny
Give me one number:asd
Give me another number:zcxv
I want number !
Continue? y/nasd
Give me one number:1
Give me another number:asdf
I want number !
Continue? y/nn
10-8 猫和狗
创建两个⽂件 和,在第⼀个⽂件中⾄少存储三只猫的名字,在第⼆个⽂件中⾄少存储三条狗的名字。编写⼀个程序,尝试读取这些⽂件,并将其内容打印到屏幕上。将这些代码放在⼀个try-except 代码块中,以便在⽂件不存在时捕获FileNotFound 错误,并打印⼀条友好的消息。将其中⼀个⽂件移到另⼀个地⽅,并确认except 代码块中的代码将正确地执⾏。
代码:
txts =["",""]
for i in txts:
try:
课件制作pptwith open(i)as filename:
content = ad()
except FileNotFoundError:
print("不到⽂件!")
else:
print(content)
运⾏结果:
miaomiao
xiaoxiao
huahua
不到⽂件!
10-9 沉默的猫和狗
修改你在练习10-8 中编写的except 代码块,让程序在⽂件不存在时⼀⾔不发。
代码:
txts =["",""]
for i in txts:
try:
with open(i)as filename:
content = ad()
except FileNotFoundError:
pass
else:
print(content)
运⾏结果:
miaomiao
xiaoxiao
huahua
10-10 常见单词
访问项⽬Gutenberg(/),并⼀些你想分析的图书。下载这些作品的⽂本⽂件或将浏览器中的原始⽂本复制到⽂本⽂件中。你可以使⽤⽅法count()来确定特定的单词或短语在字符串中出现了多少次。例如,下⾯的代码计算’row’在⼀个字符串中出现了多少次:
>>> line = "Row, row, row your boat"
>>> unt('row')
2
>>> line.lower().count('row')
3
请注意,通过使⽤lower()将字符串转换为⼩写,可捕捉要查的单词出现的所有次数,⽽不管其⼤⼩写格式如何。编写⼀个程序,它读取你在项⽬Gutenberg 中获取的⽂件,并计算单词’the’在每个⽂件中分别出现了多少次。
代码:
txts =["",""]
for i in txts:
with open(i, encoding="UTF8")as filename:
content = ad()
print(content.lower().count("the"))
运⾏结果
7558
5609
open⽅法要指定编码UTF8,否则会报错:
Traceback (most recent call last):
File "D:/python pycharm/practice/10/10-10.py", line 4,in<module>
content = ad()
UnicodeDecodeError:'gbk' codec can't decode byte 0x9d in position 1985: illegal multibyte sequence
10-11 喜欢的数字
编写⼀个程序,提⽰⽤户输⼊他喜欢的数字,并使⽤json.dump()将这个数字存储到⽂件中。再编写⼀个程序,从⽂件中读取这个值,并打印消息“I know your favorite number! It’s _____.”
代码:
import json
filename ="favorite_number.json"
favorite_number =input("What`s your favorite number ?")
with open(filename,"w")as f:
json.dump(favorite_number, f)
with open(filename)as f:
answer = json.load(f)
print("I know your favorite number! It’s "+ answer)
运⾏结果:
What`s your favorite number ?8
I know your favorite number! It’s 8
10-12 记住喜欢的数字
将练习10-11 中的两个程序合⽽为⼀。如果存储了⽤户喜欢的数字,就向⽤户显⽰它,否则提⽰⽤户输⼊他喜欢的数字并将其存储到⽂件中。运⾏这个程序两次,看看它是否像预期的那样⼯作。
代码:
import json
filename ="favorite_number.json"
try:
with open(filename)as f:
answer = json.load(f)
print("I know your favorite number! It’s "+ answer)
except FileNotFoundError:
answer =input("What`s your favorite number?")
with open(filename,"w")as f:
json.dump(answer, f)
print("Ok! I get your favorite number!")
运⾏结果:
第⼀遍
python基础知识测试题
What`s your favorite number?7
Ok! I get your favorite number!
第⼆遍
I know your favorite number! It’s 7
10-13 验证⽤户
最后⼀个remember_me.py 版本假设⽤户要么已输⼊其⽤户名,要么是⾸次运⾏该程序。我们应修改这个程序,以应对这样的情形:当前和最后⼀次运⾏该程序的⽤户并⾮同⼀个⼈。
为此,在greet_user()中打印欢迎⽤户回来的消息前,先询问他⽤户名是否是对的。如果不对,就调⽤get_new_username()让⽤户输⼊正确的⽤户名。
代码:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。