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

第十章

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"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

辨析 const指针 和 指向常量的指针

辨析以下几种指针p的定义。 int tmp 5;int *p &tmp; const int *p &tmp; int const* p &tmp; int * const p &tmp; const int * const p &tmp; int const * const p &tmp; 根据文献一,可以采用从右往左读的方式区分。 第一个为普通指…

扩展极小值—lhMorpEMin

扩展极小值(5*5正方形 h100 显示结果二值化) 函数:lhMorpEMin 说明:形态学扩展极小值 参数: src 输入图像 dst 输出图像 h 深度或动态范围阈值 se 结构元素 源码: void lhMorpEMin(const IplImage* src…

c++win32项目 如何显示后再删除一个绘图_CAD快速绘图,不可不知的50个经典技巧,看完不迷茫!...

1、文字镜像如何设置转动与不转动?A、在镜像前,输入MIRRTEXT指令B、输入新值0 代表不转动 ;输入新值1代表转动C、MIRRTEXT指令完成后,输入MI镜像指令就OK了2、CAD的版本转换?A、CAD高版本可以打开所有低版本的图纸B、C…

[html] 你有使用过template标签吗?说说它的用途有哪些?

[html] 你有使用过template标签吗&#xff1f;说说它的用途有哪些&#xff1f; HTML内容模板&#xff08;<template>&#xff09;元素是一种用于保存客户端内容机制&#xff0c;该内容在加载页面时不会呈现&#xff0c;但随后可以(原文为 maybe)在运行时使用JavaScript实…

用python画统计图表_Python数据科学(九)- 使用Pandas绘制统计图表

作者&#xff1a;许胜利 Python爱好者社区专栏作者博客专栏&#xff1a;许胜利的博客专栏1.信息可视化因为人对图像信息的解析效率比文字更高&#xff0c;所以可视化可以使数据更为直观&#xff0c;便于理解&#xff0c;使决策变得高效&#xff0c;所以信息可视化就显得尤为重要…

PHP添加php-java-brideg模块(ubuntu环境)

1、下载php-java-bridge 下载地址&#xff1a;https://sourceforge.net/projects/php-java-bridge/files/Binary%20package/php-java-bridge_7.2.1/exploded/JavaBridge.jar/download 2、将JavaBridge.jar上传到linux服务器中。例如/usr/local/src/ 3、修改php.ini文件。用find…

YSlow简介与使用(转)

原文&#xff1a;http://www.huluboke.com/firebug-yslow/ 除了Firebug自带的网络监控功能以外&#xff0c;还有很多Firebug监控插件提供更为详细的监控信息报告&#xff0c;在此介绍其中的佼佼者&#xff0c;YSlow。YSlow的下载地址为&#xff1a;http://developer.yahoo.com/…

安卓手机阅读器_乐应用|安卓手机本地阅读的不二之选

现在属于个人的时间越来越碎片化&#xff0c;因此为了方便&#xff0c;很多人选择在手机上阅读书籍。不同的人&#xff0c;有不同的阅读喜好&#xff0c;所以合适的阅读软件没有最好&#xff0c;只有更好。比如有人喜欢追网络小说&#xff0c;应用中集成在线书库就比较重要&…

[html] 你有使用过blockquote标签吗?说说它的用途有哪些?

[html] 你有使用过blockquote标签吗&#xff1f;说说它的用途有哪些&#xff1f; 用于标记长的引用 浏览器在 blockquote 元素前后添加了换行&#xff0c;并增加了外边距。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷…

莫兰迪色rgb颜色表_企业风险评价,(SCL)安全检查表,Excel工作表

说实在的&#xff0c;在很多中小企业里&#xff0c;风险评价在企业运行过程中&#xff0c;还是一项比较概念化的工作&#xff0c;明确地说就是不被重视&#xff0c;似乎有没有都无所谓。初次接触风险评价&#xff0c;感觉十分陌生&#xff0c;不知道从何入手&#xff0c;什么都…

cmake 判断操作系统平台

转载自 cmake 判断操作系统平台 MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")IF (CMAKE_SYSTEM_NAME MATCHES "Linux")MESSAGE(STATUS "current platform: Linux ") ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows")MESSAGE(…

android JSON数据解析

JSON作为一种“轻量”的数据结构传递数据&#xff0c;在JS中有广泛的应用Google公司对JSON的解析提供了gson.jar这个包&#xff0c;它不依赖于其他任何JAR包&#xff1b;目前在Android3.0中已经合入了该解析器的功能&#xff0c;但之前的版本是没有的。 findViewById(R.id.pars…

输入参数的数目不足 matlab_哈工大被禁用MATLAB,工科学生慌了,论文至上间接导致软件依赖?...

“与其让毕业生天天愁毕业论文的重复率&#xff0c;不如踏踏实实地搞点创新。”文 | 木兔 编辑 | 小豆6月6日起&#xff0c;陆续有哈尔滨工业大学(以下简称哈工大)的学生在知乎等社交网络上反映&#xff0c;MATLAB软件突然不能用了&#xff0c;明明学校已经购买了全套正版软件&…

python结巴_python结巴(jieba)分词

一、特点1、支持三种分词模式&#xff1a;(1)精确模式&#xff1a;试图将句子最精确的切开&#xff0c;适合文本分析。(2)全模式&#xff1a;把句子中所有可以成词的词语都扫描出来&#xff0c;速度非常快&#xff0c;但是不能解决歧义。(3)搜索引擎模式&#xff1a;在精确模式…

不同操作系统的宏定义区分

转载自 不同操作系统的宏定义区分 #ifdef _WIN32 //define something for Windows (32-bit and 64-bit, this part is common)#ifdef _WIN64 //define something for Windows (64-bit only)#else //define something for Windows (32-bit only)#endif#elif __APPLE__#include &…

three.js两个点给线条加宽度_一台电视两个房间看?衣柜、客房会隐形?这是什么神奇设计!...

今天介绍的家是一对小夫妻的新房&#xff0c;改造前的问题基本都是常见的槽点&#xff1a;进门过道细窄昏暗&#xff1b;厨卫小而局促&#xff1b;卧室和阳台被分成了4个小隔间&#xff0c;像群租的隔断房。1玄关利用镜面反射&#xff0c;空间视觉扩大一倍。进门的视角&#xf…

python画正方体_python绘制立方体的方法

本文实例为大家分享了python绘制立方体的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下#!/usr/bin/env python# This is (almost) a direct C to Python transliteration of# /Examples/DataManipulation/Cxx/Cube.cxx from the VTK# source distribution, which &q…

[html] 你有使用过time标签吗?说说它的用途有哪些?

[html] 你有使用过time标签吗&#xff1f;说说它的用途有哪些&#xff1f; 首先time标签是h5的新属性&#xff0c;标签定义为公历的时间或日期。 好处是time约束的日期或时间的编码方式满足机器可读的要求。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃…

论文中要用到的SPSS基础分析

大家现在都要写论文的数据分析了……很多同学都一点不会……所以把我知道的跟大家分享一下……下面以PASW18.0为例&#xff0c;也就是SPSS18.0…………什么&#xff1f;不是18.0&#xff0c;好吧……差不多的&#xff0c;凑合着看吧……要不去装个…… ……下面图片看不清的请右…

AutoMapper 9.0的改造

AutoMapper于2019.8.12升级9.0 从此不再支持静态的对象转换 自己琢磨了一下&#xff0c;写了一套扩展 官方链接如下 https://github.com/AutoMapper/AutoMapper/tree/v9.0.0 我做了一下方便使用的简单封装 public static class AutoMapperExtension{public static IServiceColl…