python 每日一练
生成字母文件
成对字母文件
成对三字母文件
生成字母文件
编写代码,生成一个文件p051.txt,每一行是一个英文字母,从a~z
提示:
• 用w写入模式打开文件,每行写一个字母
• string模块的ascii_lowercase可以得到a~z的字母
答案
import string
with open(“p051.txt”, “w”) as file:
for letter in string.ascii_lowercase:
file.write(letter + “\n”)
解释:
• open(“p051.txt”, “w”)用于新建一个文件并写入,"w"是write写入的意思
• string.ascii_lowercase是一个字符串,包含a~z的26个英文字母
成对字母文件
编写代码,生成文件p052.txt,每一行是两个英文字母的组合:
ab
cd
ef
…
yz
提示:
• zip函数可以将多个序列同时打包在一起
• 可以将string.ascii_lowercase处理成两个序列,然后再zip
答案
import string
with open(“p052.txt”, “w”) as f:
for i, j in zip(string.ascii_lowercase[::2], string.ascii_lowercase[1::2]):
f.write(i + j + “\n”)
提示:
• string.ascii_lowercase[::2] 生成acegikmoqsuwy
• string.ascii_lowercase[1::2] 生成bdfhjlnprtvxz
• zip的返回是一个个的元组,里面包含各个序列的对应元素
成对三字母文件
编写代码,生成文件p053.txt,每一行是三个英文字母的组合:
abc
def
ghi
jkl
mno
pqr
stu
vwx
yz
提示:
• zip函数可以将多个序列同时打包在一起,不只是2个,可以是3个
• 注意,26个英文字母,不是27个,不能被3除尽,最后一对只能是yz,需要做下处理
成对三字母文件
答案
import string
letters = string.ascii_lowercase + " "
slice1 = letters[0::3]
slice2 = letters[1::3]
slice3 = letters[2::3]
with open(“p053.txt”, “w”) as file:
for s1, s2, s3 in zip(slice1, slice2, slice3):
file.write(s1 + s2 + s3 + “\n”)
解释:
• zip函数可以将多个序列同时打包在一起,不只是2个,可以是3个,这里的步长改成3
• zip函数的多个序列,如果遇到了最短的序列,就会结束zip,为了让yz,最后2个字母有
所匹配,所以在最开始的letters,加了个空格,变成27个字母