第十章

10-1 Python学习 笔记 : 在文本编辑器中新建一个文件, 写几句话来总结一下你至此学到的Python知识, 其中每一行都以“In Python you can”打头。 将这个文件命名为learning_python.txt, 并将其存储到为完成本章练习而编写的程序所在的目 录中。 编写一个程序, 它读取这个文件, 并将你所写的内容打印三次: 第一次打印时读取整个文件; 第二次打印时遍历文件对象; 第三次打印时将各行存储在一个列表中, 再在with 代码块外打印它们。

10-2 C语言学习 笔记 : 可使用方法replace( ) 将字符串中的特定单词都替换为另一个单词。 下面是一个简单的示例, 演示了如何将句子中的' dog' 替换为' cat'

>>> message = "I really like dogs. "

>>> message. replace(' dog' , ' cat' )

' I really like cats. '

读取你刚创建的文件learning_python.txt中的每一行, 将其中的Python都替换为另一门语言的名称, 如C。 将修改后的各行都打印到屏幕上。

10-1

#learning_python.tx

In Python you can learn variable

In Python you can learn list

In Python you can learn Operation list

In Python you can learn dictionary

In Python you can learnclass

#第一次打印时读取整个文件

with open('learning_python.txt') as file_object:

contents=file_object.read()print(contents)#第二次打印时遍历文件对象

filename = 'learning_python.txt'with open(filename) as file_object:for line infile_object:print(line. rstrip())#第三次打印时将各行存储在一个列表中

filename = 'learning_python.txt'with open (filename) as file_object:

lines=file_object.readlines()for line inlines:print(line. rstrip() )

输出结果:

In Python you can learn variable

In Python you can learn list

In Python you can learn Operation list

In Python you can learn dictionary

In Python you can learnclass

10-2

filename = 'learning_python.txt'with open (filename) as file_object:

lines=file_object.readlines()for line inlines:

c= line.replace('Python', 'c++')print(c)#输出:

In c++you can learn variable

In c++you can learn list

In c++you can learn Operation list

In c++you can learn dictionary

In c++ you can learn class

10-3访客 : 编写一个程序, 提示用户输入其名字; 用户作出响应后, 将其名字写入到文件guest.txt中。

10-4访客名单 : 编写一个while 循环, 提示用户输入其名字。 用户输入其名字后, 在屏幕上打印一句问候语, 并将一条访问记录添加到文件guest_book.txt中。 确保这

个文件中的每条记录都独占一行。

10-5关于编程的调查 : 编写一个while 循环, 询问用户为何喜欢编程。 每当用户输入一个原因后, 都将其添加到一个存储所有原因的文件中。

10-3

filename = 'learning_python.txt'with open(filename,'w') as file_object:

message= input('请输入名字:')

file_object.write(message)#输出:

请输入名字:cc

cc

10-4

filename = 'learning_python.txt'with open(filename,'a') as file_object:whileTrue:

message= input('请输入名字:')if message == 'q':break

else:print('Hello' +message)

file_object.write('\nHello' +message)#如果这里的缩进和while一样,那么输出的只有q的信息,如果和if一样,则输出的信息都有

#输出:

请输入名字:qq

Hello qq

请输入名字:cc

Hello cc

请输入名字:q#文本信息:

Hello qq

Hello cc

10-5

filename = 'learning_python.txt'with open(filename,'a') as file_object:whileTrue:

message= input('Why do you like programming:')if message == 'q':break

else:print('Reason' +message)

reason= ''reason+=messageprint(reason)

file_object.write('\nReason' +reason)#如果这里的缩进和while一样,那么输出的只有q的信息,如果和if一样,则输出的信息都有

10-6加法运算 : 提示用户提供数值输入时, 常出现的一个问题是, 用户提供的是文本而不是数字。 在这种情况下, 当你尝试将输入转换为整数时, 将引

发TypeError 异常。 编写一个程序, 提示用户输入两个数字, 再将它们相加并打印结果。 在用户输入的任何一个值不是数字时都捕获TypeError 异常, 并打印一

条友好的错误消息。 对你编写的程序进行测试: 先输入两个数字, 再输入一些文本而不是数字。

10-7加法计算器 : 将你为完成练习 10-6而编写的代码放在一个while 循环中, 让用户犯错(输入的是文本而不是数字) 后能够继续输入数字。

10-8猫和狗 : 创建两个文件cats.txt和dogs.txt, 在第一个文件中至少存储三只猫的名字, 在第二个文件中至少存储三条狗的名字。 编写一个程序, 尝试读取这些文件,

并将其内容打印到屏幕上。 将这些代码放在一个try-except 代码块中, 以便在文件不存在时捕获FileNotFound 错误, 并打印一条友好的消息。 将其中一个文件

移到另一个地方, 并确认except 代码块中的代码将正确地执行。

10-9沉默的猫和狗 : 修改你在练习 10-8中编写的except 代码块, 让程序在文件不存在时一言不发。

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

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

>>> line = "Row, row, row your boat"

>>> line. count(' row' )

2>

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

3

10-6

try:

inp_msg= input('请输入数字:')

inp_msg_toInt=int(inp_msg)exceptValueError:print('只能输入整型')else:print(inp_msg_toInt)#输出:

请输入数字:2

2

#或者

请输入数字:e

只能输入整型

10-7

whileTrue:try:

inp_msg= input('请输入数字:')

inp_msg_toInt=int(inp_msg)exceptValueError:print('只能输入整型')else:print(inp_msg_toInt)break#在这里break好啊,为了能够一直循环上面的输入

#输出

请输入数字:e

只能输入整型

请输入数字:w

只能输入整型

请输入数字:2

2

10-8

错误答案

##########读、写、清屏函数,不用try,直接造##################

f_name_a = 'msg/cats.txt'f_name_b= 'msg/dogs.txt'

defwrite(f_name_x,msg):

with open(f_name_x,'a') as f:

f.write(msg)defread(f_name_x):

with open(f_name_x) as f:

con=f.read()print(con.rstrip())defclear(f_name_x):

with open(f_name_x,'w') as f:

f.truncate()

clear(f_name_a)

clear(f_name_b)

write(f_name_a,'cat1\n')

write(f_name_a,'cat2\n')

write(f_name_a,'cat3\n')

write(f_name_b,'dog1\n')

write(f_name_b,'dog2\n')

write(f_name_b,'dog3\n')

read(f_name_a)

read(f_name_b)#输出

File "C:/Python36/day10/s1.py", line 18, inclear

with open(f_name_x,'w') as f:

FileNotFoundError: [Errno2] No such file or directory: 'msg/cats.txt'

正确答案

##########正确答案############

defopen_file(f_name):try:

with open(f_name) as f_n:

con=f_n.read()exceptFileNotFoundError:print('404 not found!')else:print(con.rstrip())

ur_list= [ 'msg/cats.txt', 'msg/dogs.txt']for i inur_list:

open_file(i)#输出:

404 notfound!404 not found!

10-9

defopen_file(f_name):try:

with open(f_name) as f_n:

con=f_n.read()exceptFileNotFoundError:pass

else:print(con.rstrip())

ur_list= [ 'msg/cats.txt', 'msg/dogs.txt']for i inur_list:

open_file(i)

10-10l略

10-11喜欢的数字 : 编写一个程序, 提示用户输入他喜欢的数字, 并使用j son. dump( ) 将这个数字存储到文件中。 再编写一个程序, 从文件中读取这个值, 并打印

消息“I know your favorite number! It's _____.”。

10-12记住喜欢的数字 : 将练习 10-11中的两个程序合而为一。 如果存储了用户喜欢的数字, 就向用户显示它, 否则提示用户输入他喜欢的数字并将其存储到文件中。

运行这个程序两次, 看看它是否像预期的那样工作。

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

运行该程序的用户并非同一个人。

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

10-11

importjson

f_name= 'msg/inp_10_11.json'msg_inp= input('请输入您喜欢的数字:')

with open(f_name,'w') as fn:

json.dump(msg_inp,f_n)#数字存储到文件中

with open(f_name) as fn1:

c= json.load(f_n)#文件中读取这个值

print('I know your favorite number! It\'s'+ c)

10-12

filename = 'msg/fav_numb.json'

try:

with open(filename) as f_obj:

fav_num=json.load(f_obj)exceptFileNotFoundError:

fav_num= input("请输入你喜欢的数字:")

with open(filename,'a') as f_obj:

json.dump(fav_num, f_obj)print("你喜欢的数字:" + fav_num + "!")else:print("你喜欢的数字:" + fav_num + "!")

10-13

importjsondefget_sorted_username():"""如果存储了用户名,就获取它"""filename= 'username.json'

try:

with open(filename) as f_obj:

username=json.load(f_obj)exceptFileNotFoundError:returnNoneelse:returnusernamedefget_new_username():"""提示用户输入用户名"""username= input("What is your name?")

filename= 'username.json'with open(filename,'w') as f_obj:

json.dump(username, f_obj)returnusernamedefgreet_user():"""问候用户, 并指出其名字"""username=get_sorted_username()ifusername:

result= input(username + "is right?")if result == 'y':print("Welcom back,", username, "!")else:

username=get_new_username()print("Welcom back,", username, "!")else:

username=get_new_username()print("We'll remember you when you come back,", username, "!")if __name__ == "__main__":#表示执行的是此代码所在的文件

greet_user()

如果是的话

#输出

cccccis right?y

Welcom back, ccccc !

如果不是的话

#输出:

caofuis right?w

Whatisyour name?wangshi

Welcom back, wangshi !###文件里信息###

"wangshi"

in python you can_Python编程:从入门到实践——【作业】——第十章(文件和异常)...相关推荐

  1. python中立方_Python编程从入门到实践 第四章练习题

    一.想出至少三种你喜欢的披萨,将其名称存储在一个列表中,再使用for循环将每种披萨的名称都打印出来. 修改这个for循环,使其打印包括披萨名称的句子,而不仅仅是披萨的名称.对于每种披萨,都显示一行输出 ...

  2. 《Python编程从入门到实践》记录之文件异常(try-except-else代码块)

    目录 1.try-except代码块 2.else代码块 Python使用被称为异常的特殊对象来管理程序执行期间发生的错误.当程序发生错误时,Python会创建一个异常对象.如果编写了处理异常的代码, ...

  3. 怎么运行python外星人入侵_python编程:从入门到实践 外星人入侵项目:武装飞船 代码运行不显示飞船...

    我的飞船去哪了???!!! 照着书上的项目完整的代码运行一下,结果屏幕上没出现飞船,代码都是对的呀,这是咋回事? 屏幕高度问题 class Settings(): """ ...

  4. 《Python编程从入门到实践》记录之json模块(数据存储)

    模块json让你能够将简单的Python数据结构转储到文件中, 并在程序再次运行时加载该文件中的数据. 你还可以使用json在Python程序之间分享数据.更重要的是,JSON数据格式并非Python ...

  5. python编程 从入门到实践怎么样-python编程从入门到实践这本书怎么样

    <Python编程-从入门到实践>作者: Eric Matthes,已翻译为中文,人民邮电出版社出版. python编程从入门到实践怎么样? 我们一起看看已经学习的同学对这本书的口碑和评价 ...

  6. python编程入门指南怎么样-python编程从入门到实践这本书怎么样

    <Python编程-从入门到实践>作者: Eric Matthes,已翻译为中文,人民邮电出版社出版. python编程从入门到实践怎么样? 我们一起看看已经学习的同学对这本书的口碑和评价 ...

  7. python编程 入门到实践-终于懂了python编程从入门到实践

    Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python编程 ...

  8. python编程 从入门到实践豆瓣-三周刷完《Python编程从入门到实践》的感受

    本文将以对话采访的形式展现 为什么会选择学习Python 语法简洁,实用,和golang部分类似,学习性价比高: 应用范围广,涉及后端,机器学习,图像处理,游戏等: 好奇这是一门怎样的语言 计划如何学 ...

  9. python入门到实践-Python编程从入门到实践(基础入门)

    Python编程从入门到实践-------基础入门 1.Python中的变量 2.Python首字母大写使用title()方法,全部大写upper()方法,全部小写lower()方法 3.Python ...

  10. python从入门到实践学习笔记_Python编程从入门到实践:学习笔记1(第二章)

    开通博客我用的理由是:读书学习时记笔记,一方面为了回顾,一方面为了督促自己.fighting! 学习Python,我买了Python编程从入门到实践. 我将从第二章开始记录我认为我以后会忘记以及重要的 ...

最新文章

  1. Arm Cortex-M23 MCU,Arm Cortex-M33 MCU与RISC-V MCU技术
  2. 安川g7接线端子图_ABB、KUKA、FANUC、安川四大家族机器人安全回路小结
  3. 在服务器上安装网站环境,如何在服务器上搭建JSP环境,需要安装哪些软件?
  4. sap 打印预览界面点击打印时记录打印次数_SAP打印机设置
  5. JVM实战总结:一个多线程中对象引用的问题
  6. 使用更安全的C字符串操纵
  7. opera官方教程-前台
  8. 摩拜开锁系统是用什么服务器,摩拜昨晨现“开锁难” 市民:系统需更稳定
  9. 修改Layui表单验证提示框样式
  10. 赵伟功老师 管理系统提升专家
  11. 华为手机解锁码计算工具_华为最新解bl解锁码计算工具 V2.0.2 免费版
  12. 零代码获取国家统计局省市县乡村5级行政区代码
  13. 全国主要城市经纬度SQL脚本
  14. 低延迟视频传输 UDP JPEG图像压缩 opencv
  15. 建筑企业并购:人才整合策略
  16. ISCC2021—检查一下
  17. 商业模式笔记以及体悟
  18. Symantec Backup Exec 报Access denied to directory xxx Error Code E0008488
  19. 基于bytom 智能合约_基于HTTP的合约测试@ Gamesys
  20. 慕课网_《Redis入门》学习总结

热门文章

  1. 计算机网络怎么查看连接打印机驱动,如何检测网络打印机是否已成功连接到计算机[检测方法]...
  2. css怎么把背景图片拉伸至100%
  3. python的urllib2模块
  4. uniapp网络请求封装;小程序请求接口封装;uni.request接口封装
  5. [Redux/Mobx] Mobx和Redux有什么区别?
  6. [react] 写出React动态改变class切换组件样式
  7. [react] 请说下react组件更新的机制是什么
  8. [react] React Hooks帮我们解决了哪些问题?
  9. [react] contextType是什么?它有什么用?
  10. React开发(202):react代码分割之import导入导出