例题10-2 C语言学习笔记
描述:读取你刚创建的文件learning_python.txt中的每一行,
将其中的Python都替换为另一门语言的名称,如C。
将修改后的各行都打印到屏幕上。
代码:
with open('learning_python.txt') as file_object:
lines = file_object.readlines()
message = ''
for line in lines:
message += line.replace('python', 'C')
print(message)
结果:
例题10-4 访客名单
描述:编写一个while 循环,提示用户输入其名字。
用户输入其名字后,在屏幕上打印一句问候语,
并将一条访问记录添加到文件guest_book.txt中。
确保这个文件中的每条记录都独占一行。
代码:
prompt = 'Please enter your name.'
prompt += 'Enter "q" if you want to quit: '
while True:
name = input(prompt)
if name == 'q':
break
print('Hello ' + name + '!')
with open('guest_book.txt', 'a') as file_object:
file_object.write(name + ' visited.\n')
结果:
例题10-6 加法运算
描述:提示用户提供数值输入时,常出现的一个问题是
,用户提供的是文本而不是数字。在这种情况下,
当你尝试将输入转换为整数时,将引发TypeError 异常。
编写一个程序,提示用户输入两个数字,再将它们相加并打印结果。
在用户输入的任何一个值不是数字时都捕获TypeError 异常,
并打印一条友好的错误消息。对你编写的程序进行测试:
先输入两个数字,再输入一些文本而不是数字。
代码:
print('Plese enter two numbers and we will add them up.')
print('Enter "q" if you want to quit.')
while True:
first_number = input('First number: ')
if first_number == 'q':
break
second_number = input('Second number: ')
if second_number == 'q':
break
try:
first = int(first_number)
second = int(second_number)
except ValueError:
print('You did not enter a number.Please enter again!')
else:
print('Results: ' + str(first+second))
结果:
发现的问题:
- 在Windows系统中,在文件路径中使用反斜杠(\ )而不是斜杠(/ ):
- rstrip() 删除(剥除)字符串末尾的空白
- open(filename要加单引号/双引号)
- 因为read() 返回一个长长的字符串到达文件末尾时返回一个空字符串,而将这个空字符串显示出来时就是一
个空行。要删除多出来的空行,可在print 语句中使用rstrip() :掌握打印文件的三种方法 - 在read()后再用file_object会为空?
- Replace是字符串的方法
- 时,可指定读取模式 (’r’ )、写入模式 (’w’ )、附加模式 (’a’ )或让你能够读取和写入文件的模式(’r+’
- 如果你要写入的文件不存在,函数open() 将自动创建它。然而,以写入(’w’ )模式打开文件时千万要小心,因为如果指定的文件已经存在,Python将在返回文件对象前清空
- 该文件。
- Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str() 将其转换为字符串格式。
- Input函数
- Content = file_object.read()后content也可以在with外使用
- TypeError和ValueError
- 字符串的方法count()