python入门学习随记(十二)

12-1 文件行数统计

下载题目附件,编辑src/目录下的test.py文件,实现读取统计data.txt文件的有效行数,并将结果输出保存到result.txt文件。
说明:

(1)有效行指至少包括一个字符行,空行不计为有效行

(2)程序文件名 test.py 不能修改

(3)本地编写测试完成后,将src文件夹打包为 src.zip文件后上传提交

data.txt的内容如下:

python程序设计

人生苦短,我学python
程序设计

抽象过程
自动化求解的计算思维
结合问题思考程序结构

输出结果如下:结果写入到result.txt中

有效行数为:6行

c = 0
with open('data.txt','r',encoding = 'utf-8') as f:
    for x in f.readlines():
        if x != '\n':
            c = c+1
        
with open('result.txt','w') as g:
    g.write('有效行数为:{0}行'.format(str(c)))
g.close()

12-2 计算文件的平均列数

下载题目附件,编辑src/目录下的test.py文件,打开读取file.txt文件中的内容,统计并计算整个文本有效行的平均列数,即总列数/总行数,并将结果输出保存到result.txt文件中。程序代码须保存在 test.py中。
说明:

(1)有效行,指包含至少一个字符的行,不计算空行

(2)每行的列数为其有效字符数,不计算结束的换行符(“\n”)

(3)平均列数为有效行的列数平均值,即总列数/总有效行数,结果采用四舍五入方式取整数

(4)在本地编写测试完成后,把src文件压缩为src.zip文件后上传提交

输入格式:

请查看 file.txt 文件, file.txt内容如下:

python程序设计
人生苦短,我 学python
程序设计

抽象过程
自动化求解 的计算思维
结合问题思考程序结构

输出格式:
用以下格式输出结果到result.txt中

python程序设计:10
人生苦短,我 学python:14
程序设计:4
抽象过程:4
自动化求解 的计算思维:12
结合问题思考程序结构:10
平均列数为:9

x = []
c = 0
with open('file.txt','r',encoding = 'utf') as f:
    lst = f.readlines()
    for i in range(len(lst)):
        if lst[i] != '\n':
            lst[i] = lst[i].strip()
            l = len(lst[i])
            c = c+l
            x.append('{0}:{1}'.format(lst[i],l))
with open('result.txt','w',encoding = 'utf') as g:
    for i in range(len(x)):
        g.write('{0}\n'.format(x[i]))
    a = c/len(x)
    g.write('平均列数为:{0}'.format(int(a)))
g.close()

9-3 统计文件中字符的分布情况

下载题目附件,编辑src/目录下的test.py文件,读取sample.txt文件中的内容,统计其中小写字母a-z的字符分布情况,即a-z字符出现的次数,同时统计文件中一共出现的字符数,并将结果按字典顺序输出到result.txt文件中
说明:

(1)忽略字母大小写,即大写字母A和小写字母a视作同一个字母

(2)仅统计字母字符,#/?’"!:,@%$&~()等特殊字符不统计,*也不统计多余空格

(3)统计一共出现的字母字符总数,同时统计每个字母的出现次数,单个字母的统计结果按字典顺序输出,如a:5,b:13,c:3,d:9,e:10等

(4)在本地编写测试结束后,将src文件夹压缩为src.zip文件后上传提交

输入格式:
在sample文件中

I have a Dream
I have a dream that one day this nation will rise up and live out the true meaning of its creed: “We hold these truths to be self
evident that all men are created equal!”.
I have a dream that one day on the red hills of Georgia, the sons of former slaves and the sons of former slave owners will be able to
sit down together at the table of brotherhood.
I have a dream that one day even the state of Mississippi, a state sweltering with the heat of injustice, sweltering with the heat of
oppression, will be transformed into an oasis of freedom and justices.
I have a dream today.

输出格式如下:
输出结果保存到result.txt文件中

共467个字符,其中每个字母的分布情况为:
a:46, b:6, c:4, d:21, e:69, f:14, g:6, h:29, i:32, j:2, l:20, m:12, n:25, o:36, p:5, q:1, r:27, s:32, t:49, u:7, v:10, w:10, y:4

x = []
a = 0
with open('sample.txt','r',encoding='utf') as f:
    fi = f.read()
    fi = fi.lower()
    for i in fi:
        if i.isalpha():
            a = a+1
    
    for i in 'abcdefghijklmnopqrstuvwxyz':
        c = fi.count(i)
        if c != 0:
            x.append('{0}:{1}'.format(i,c))
with open('result.txt','w',encoding='utf') as g:
    g.write('共{0}个字符,其中每个字母的分布情况为:\n'.format(a))
    g.write(', '.join(x))
g,close()

9-4 找出文中最长的单词

下载题目附件,编辑src/目录中的test.py文件,打开读取data.txt中的内容,找出其中最长的单词,并将结果保存到result.txt文件中。
说明:

(1)data.txt文件中保存有若干个单词,每个单词为一行

(2)查找文件中长度最长的单词,如果长度相同的单词有多个,多个单词都输出,注意输出的结果单词不允许重复

(3)文件中内容自己可以做相应调整,使满足输出要求:考虑当最长单词只有一个的情况,和最长单词有多个的情况

(4)在本地编写测试完成后,将src文件夹压缩为src.zip后上传提交

输入格式 :
在data.txt文件中

Li
Zhang
Wu
Long
Wang
Qiong
Zhang
Xiong
输出格式如下:
结果保存到result.txt文件中

(1) 如果最长的单词只有一个,则输出:

The longest word is: Zhang

(2)如果有多个单词长度相同(都是最长),则输出结果如下,中间间隔为英文逗号

The longest words are: Zhang,Qiong,Xiong

x1 = []
x2 = []
with open('data.txt','r') as f:
    fi = f.readlines()
    for i in range(len(fi)):
        fi[i] = fi[i].strip()
        x1.append(len(fi[i]))
    m = max(x1)
    for i in range(len(fi)):
        if len(fi[i]) == m:
            if fi[i] not in x2:
                x2.append(fi[i])
        
with open('result.txt','w') as g:
    if len(x2) == 1:
        g.write('The longest word is: {0}'.format(x2[0]))
    else :
        a = ','.join(x2)
        g.write('The longest words are: {0}'.format(a))
g.close()

12-5 文件的合并输出

下载题目附件,编辑src目录下的test.py文件,打开读取movie.txt和comment.txt文件,将两个文件中的内容进行交叉合并,即一行movie后,一行comment,并将合并后的结果保存到result.txt文件中。
说明:

(1)依次读取movie.txt文件和comment.txt文件,即先读movie.txt,再读comment.txt,也即movie.txt一行,comment.txt一行,如此往复。

(2)当其中一个文件的内容读完后,将行数较多的文件中剩余的部分全部写入目标文件result.txt中

(3)在本地编辑测试成功后,将src文件夹压缩成src.zip文件后上传提交

输入格式:
在movie.txt 和 comment.txt文件中

(1)movie.txt文件内容

1、黑客帝国
2、机械姬
3、哪吒
4、冰雪公主

(2)comment.txt文件内容

Famous science fiction film
It tells a story about Turing Machine, the origin of Artificial Intelligence. "我命由我,不由天!"一部意义深远的国漫电影 Directed by
Disney Company, describing a beautiful Fairy tales. Recommend you
other wonderful movies:
(1) Frozen 2
(2) Maleficent
(3) Life of Pi

输出结果如下:
结果保存在result.txt文件中

1、黑客帝国
Famous science fiction film
2、机械姬
It tells a story about Turing Machine, the origin of Artificial Intelligence. 3、哪吒
"我命由我,不由天!"一部意义深远的国漫电影
4、冰雪公主
Directed by Disney Company, describing a beautiful Fairy tales. Recommend you other wonderful movies:
(1)Frozen 2
(2) Maleficent
(3) Life of Pi

f = open('movie.txt','r',encoding='utf')
g = open('comment.txt','r',encoding='utf')
h = open('result.txt','w',encoding='utf')
fi = f.readlines()
gi = g.readlines()
if len(fi) >= len(gi):
    for i in range(len(gi)):
        h.write(fi[i])
        h.write(gi[i])
    for i in range(len(gi),len(fi)):
        h.write(fi[i])
else:
    for i in range(len(fi)):
        h.write(fi[i])
        h.write(gi[i])
    for i in range(len(fi),len(gi)):
        h.write(gi[i])    
h.close()    

你可能感兴趣的:(python)