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

filename = 'learning_python.txt'
with open(filename) as file_object:
contents = file_object.read() print("the first style of reading the contents:")
print(contents) print("\nthe second style of reading the contents:")
with open(filename) as file_object:
for line in file_object:
print(line.strip()) with open(filename) as file_object:
lines = file_object.readlines()
print("\nthe third style of reading the contents:")
for line in lines:
print(line.strip())

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

  • 读取你刚创建的文件learning_python.txt中的每一行,将其中的Python都替换为另一门语言的名称,如C。将修改后的各行都打印到屏幕上。
filename = 'learning_python.txt'
with open(filename) as file_object:
contents = file_object.read() contents = contents.replace('python','java')
print(contents)

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

filename = 'guest.txt'
username = input('please enter your name:') with open(filename,'a') as file_object:
file_object.write(username+'\n')

编写一个while 循环,提示用户输入其名字。用户输入其名字后,在屏幕上打印一句问候语,并将一条访问记录添加到文件guest_book.txt中。确保这个文件中的每条记录都独占一行

filename = 'guest_book.txt'

while True:
name = input('Please enter your name,press Ctrl+c exit this terminal:')
with open(filename,'a') as file_object:
file_object.write(name+'\n')
print(f'welcome! {name.title()}')

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

filename = 'reasons.txt'

while True:
reason = input("Why are you love to programming:")
with open(filename,'a') as file_object:
file_object.write(f'{reason} \n')

提示用户提供数值输入时,常出现的一个问题是,用户提供的是文本而不是数字。在这种情况下,当你尝试将输入转换为整数时,将引 发TypeError异常。编写一个程序,提示用户输入两个数字,再将它们相加并打印结果。在用户输入的任何一个值不是数字时都捕获TypeError 异常,并打印一条友好的错误消息。对你编写的程序进行测试:先输入两个数字,再输入一些文本而不是数字

print("Give me two numbers and I'll add them.")
print("Enter 'q' to quit.") while True:
first_number = input("\nFirst number:")
if first_number == 'q':
break
second_number = input("Second number:")
if second_number == 'q':
break
try:
number_1 = int(first_number)
number_2 = int(second_number)
result = number_1 + number_2
except ValueError as e:
print("some input are not number.")
else:
print(f"The result is {result}")

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

print("Give me two numbers and I'll add them.")
print("Enter 'q' to quit.") while True:
first_number = input("\nFirst number:")
if first_number == 'q':
break
second_number = input("Second number:")
if second_number == 'q':
break
try:
number_1 = int(first_number)
number_2 = int(second_number)
result = number_1 + number_2
except ValueError as e:
print("some input are not number.")
else:
print(f"The result is {result}")

创建两个文件cats.txt和dogs.txt,在第一个文件中至少存储三只猫的名字,在第二个文件中至少存储三条狗的名字。编写一个程序,尝试读取这些文件, 并将其内容打印到屏幕上。

  • 将这些代码放在一个try-except 代码块中,以便在文件不存在时捕获FileNotFound 错误,并打印一条友好的消息。将其中一个文件 移到另一个地方,并确认except 代码块中的代码将正确地执行

  • 修改你在练习10-8中编写的except 代码块,让程序在文件不存在时一言不发

def pets(filename):
try:
with open(filename) as f:
contents =f.read()
except FileNotFoundError as e:
#print("cannot find the file.")
pass
else:
print(f"The pets are:\n{contents}") filenames =['dogs.txt','cats.txt','puppys.txt']
for filename in filenames:
pets(filename)

PythonCrashCourse 第十章习题的更多相关文章

  1. java编程思想第四版第十章习题

    第一题 package net.mindview.innerclasses; public class Outer { class Inner { Inner(){ System.out.printl ...

  2. PythonCrashCourse 第九章习题

    创建一个名为Restaurant 的类,其方法__init__() 设置两个属性: restaurant_name 和cuisine_type 创建一个名为describe _restaurant ( ...

  3. PythonCrashCourse 第八章习题

    编写一个名为display_message() 的函数,它打印一个句子,指出你在本章学的是什么.调用这个函数,确认显示的消息正确无误 def display_message(): print(&quo ...

  4. PythonCrashCourse 第二章习题

    2.3 个性化消息:将用户的姓名存到一个变量中,并向该用户显示一条消息.显示的消息应非常简单,如"Hello Eric, would you like to learn some Pytho ...

  5. PythonCrashCourse 第三章习题

    PythonCrashCourse 第三章习题 3.1 将一些朋友的姓名存储在一个列表中,并将其命名为names.依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来 names = ['lih ...

  6. PythonCrashCourse 第四章习题

    Python 从入门到实践第四章习题 4.1想出至少三种你喜欢的比萨,将其名称存储在一个列表中,再使用for 循环将每种比萨的名称都打印出来 修改这个for 循环,使其打印包含比萨名称的句子,而不仅仅 ...

  7. C和指针 第十章 结构和联合 习题

    1. 记账信息结构联合 typedef struct { unsigned int areaNum; unsigned int transNum; unsigned int station; } ph ...

  8. 快学Scala习题解答—第十章 特质

    10 特质 10.1 java.awt.Rectangle类有两个非常实用的方法translate和grow,但可惜的是像java.awt.geom.Ellipse2D这种类没有. 在Scala中,你 ...

  9. PythonCrashCourse 第七章习题

    编写一个程序,询问用户要租赁什么样的汽车,并打印一条消息,如"Let me see if I can find you a Subaru" car =input("Wha ...

随机推荐

  1. 性能测试必备知识(5)- 深入理解“CPU 上下文切换”

    做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html 前言 上一篇文章中,举例了大量进程等待 CP ...

  2. .net core 使用 Serilog 作为日志提供者

    nuget引入 Serilog.AspNetCore Startup构造函数: public Startup(IConfiguration configuration) { Configuration ...

  3. jmeter接口测试 -- 上传文件(multipart/form-data数据请求)

    一.环境 jmeter5.2.1 二.具体步骤 1.抓取接口的请求数据 2.填写jmeter的数据 1) 信息头管理器 2) 填写 “参数” 3) 填写 “文件上传” 三.检验接口. 1.响应数据 - ...

  4. 离线安装 docker

    1.基础环境 操作系统:CentOS 7.8 docker 版本:18.06.1 2.docker 下载 2.1 官方地址 https://download.docker.com/linux/stat ...

  5. 打开chm文件时出现“无法显示此页:确保 Web 地址 //ieframe.dll/dnserrordiagoff.htm# 正确”的解决办法

    当我们打开chm文件时遇到下面这种情况: 解决方法: 1.一般情况下无法显示网页:右键 chm文件属性里最下面有个"解除锁定",点击"解除锁定"按钮就可以了. ...

  6. IO—》递归

    递归的概述 递归,指在当前方法内调用自己的这种现象 public void method(){ System.out.println(“递归的演示”); //在当前方法内调用自己 method(); ...

  7. PHP array_combine() 函数

    ------------恢复内容开始------------ 实例 通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组元素为键值: <?php$fname=array(&qu ...

  8. PHP zip_entry_compressionmethod() 函数

    定义和用法 The zip_entry_compressionmethod() 函数返回 zip 档案项目的压缩方法.高佣联盟 www.cgewang.com 语法 zip_entry_compres ...

  9. PHP mb_substr() 函数

    实例 从字符串中返回 "菜鸟": <?php echo mb_substr("菜鸟教程", 0, 2); // 输出:菜鸟 ?> 定义和用法 mb_ ...

  10. Skill 脚本演示 ycChangeViaNumber.il

    https://www.cnblogs.com/yeungchie/ ycChangeViaNumber.il 使用鼠标滚轮快速修改 Via 的数量. 回到目录