Python编程:从⼊门到实践——练习题答案(第⼗章)第10章⽂件和异常
10-1 Python 学习笔记:在⽂本编辑器中新建⼀个⽂件,写⼏句话来总结⼀下你⾄
此学到的 Python 知识,其中每⼀⾏都以“In Python you can”打头。将这个⽂件命名为
,并将其存储到为完成本章练习⽽编写的程序所在的⽬录中。编写⼀
个程序,它读取这个⽂件,并将你所写的内容打印三次:第⼀次打印时读取整个⽂件;
第⼆次打印时遍历⽂件对象;第三次打印时将各⾏存储在⼀个列表中,再在 with 代码
块外打印它们。
filename =''
with open(filename)as file_object:
contents = ad()
print(contents)
100的二进制转换成十进制
filename =''
with open(filename)as file_object:
for line in file_object:
print(line.rstrip())
filename =''
with open(filename)as file_object:
lines = adlines()
for line in lines:
print(line.rstrip())
10-2 C 语⾔学习笔记:可使⽤⽅法 replace()将字符串中的特定单词都替换为另⼀
个单词。下⾯是⼀个简单的⽰例,演⽰了如何将句⼦中的’dog’替换为’cat’:
>>> message = “I really like dogs.”
>>> place(‘dog’, ‘cat’)
‘I really like cats.’
读取你刚创建的⽂件 中的每⼀⾏,将其中的 Python 都替换为另
⼀门语⾔的名称,如 C。将修改后的各⾏都打印到屏幕上。
filename =''
with open(filename)as file_object:
lines = adlines()
for line in lines:
line = place('python','C')
print(line.rstrip())
10-3 访客:编写⼀个程序,提⽰⽤户输⼊其名字;⽤户作出响应后,将其名字写
⼊到⽂件 中。
message =input("Please enter your name: ")
filename =''
with open(filename,'w')as file_object:
file_object.write(message)
10-4 访客名单:编写⼀个 while 循环,提⽰⽤户输⼊其名字。⽤户输⼊其名字后,
在屏幕上打印⼀句问候语,并将⼀条访问记录添加到⽂件 中。确保这个
⽂件中的每条记录都独占⼀⾏。
while True:
username =input("Please enter your name: ")
print("Hello, "+ username)
filename =''
with open(filename,'a')as file_object:
file_object.write(username +'\n')
10-5 关于编程的调查:编写⼀个 while 循环,询问⽤户为何喜欢编程。每当⽤户输
⼊⼀个原因后,都将其添加到⼀个存储所有原因的⽂件中。
file_name =''
with open(file_name,'a')as file_obj:
file_obj.write('The reasons:'+'\n')
while True:
message =input('What\'s your reason for programming?(\'q\'for quit)')
if message =='q':
break
else:
with open(file_name,'a')as file_obj:
file_obj.write(message+'\n')
10-6 加法运算:提⽰⽤户提供数值输⼊时,常出现的⼀个问题是,⽤户提供的是
⽂本⽽不是数字。在这种情况下,当你尝试将输⼊转换为整数时,将引发 TypeError 异常。编写⼀个程序,提⽰⽤户输⼊两个数字,再将它们相加并打印结果。在⽤户输⼊的任何⼀个值不是数字时都捕获 TypeError 异常,并打印⼀条友好的错误消息。对你编写的程序进⾏测试:先输⼊两个数字,再输⼊⼀些⽂本⽽不是数字。
first_number =input("Enter your first number: ")
second_number =input("Enter your second number: ")
try:
sum=int(first_number)+int(second_number)
except ValueError:
print("ValueError")
else:
print("The answer is "+str(sum))
10-7 加法计算器:将你为完成练习 10-6 ⽽编写的代码放在⼀个 while 循环中,让
⽤户犯错(输⼊的是⽂本⽽不是数字)后能够继续输⼊数字。
while True:
first_number =input("Enter your first number: ")
if first_number =='q':
break
second_number =input("Enter your second number: ")
if second_number =='q':
llvm交叉编译
break
try:
sum=int(first_number)+int(second_number)
except ValueError:
print("ValueError")
else:
print("The answer is "+str(sum))
10-8 猫和狗:创建两个⽂件 和 ,在第⼀个⽂件中⾄少存储三只猫的名字,在第⼆个
⽂件中⾄少存储三条狗的名字。编写⼀个程序,尝试读取这些⽂件,并将其内容打印到屏幕上。将这些代码放在⼀个 try-except 代码块中,以便在⽂件不存在时捕获 FileNotFound 错误,并打印⼀条友好的消息。将其中⼀个⽂件移到另⼀个地⽅,并确认 except 代码块中的代码将正确地执⾏。
filenames =['','']
for filename in filenames:
try:
with open(filename)as f_obj:
contents = ad()
print(contents)
except FileNotFoundError:
print("Sorry, I can't find that file.")
10-9 沉默的猫和狗:修改你在练习 10-8 中编写的 except 代码块,让程序在⽂件不存在时⼀⾔不发。
filenames =['','']
for filename in filenames:
try:
with open(filename)as f_obj:
contents = ad()
print(contents)
except FileNotFoundError:
pass
10-11 喜欢的数字:编写⼀个程序,提⽰⽤户输⼊他喜欢的数字,并使⽤
json.dump()将这个数字存储到⽂件中。再编写⼀个程序,从⽂件中读取这个值,并打印消息“I know your favourite number! It’s _____.”。
import json
number =input("What's your favorite number?")
filename ='number.json'
with open(filename,'w')as f_obj:
json.dump(number,f_obj)
print(number)
filename ='number.json'
with open(filename)as f_obj:
number = json.load(f_obj)
print(number)
10-12 记住喜欢的数字:将练习 10-11 中的两个程序合⽽为⼀。如果存储了⽤户喜欢的数字,就向⽤户显⽰它,否则提⽰⽤户输⼊他喜欢的数字并将其存储到⽂件中。运⾏这个程序两次,看看它是否像预期的那样⼯作。
import json
filename ='number.json'
try:
with open(filename)as f_obj:
number = json.load(f_obj)
except FileNotFoundError:
number =input("What's your favorite number?")
with open(filename,'w')as f_obj:
python入门教程编辑器json.dump(number,f_obj)
print("Your favorite number is "+ number)
else:
print("Your favorite number is "+ number)
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's your name?")
filename ='username.json'
with open(filename,'w')as f_obj:
json.dump(username,f_obj)
springboot有springmvc吗
return username
def greet_user():
#问候⽤户,并指出其名字
username = get_stored_username()
if username:
correct =input("Are you "+ username +"?(y/n)")
if correct =='y':
print("Welcome back, "+ username)
else:
username = get_new_username()
print("Welcome back, "+ username)
java培训学校技术else:
username = get_new_username()
print("Welcome back, "+ username)
greet_user()

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