-
第一题
import turtle
for i in range(6):
turtle.fd(200)
turtle.right(60)
-
第二题
首先,我要吐槽一下,现在什么人都能去搞在线教育,比如我现在看的这个视频的讲师叫梁永,他的水平我真不能恭维,就是现学现卖,不过换个方向考虑,他对python的简单理解也恰恰能让读者们过二级,但不得不说他的水平很LOW,自称西交研究生,这让我很怀疑西交现在的教学水平。
问题一
他的视频在讲解这道题目的时候简直是胡闹,为了方便自己理解同时尽量帮助作为初学者的大家,我自己写了name和vote文件,自己试验代码,希望能够更好的帮助大家:
我的文件是仿照真题的文件,通过文件我们会发现,name中有的人投票是瞎投的,因为班级里并没有这个人的名字,比如在投票中出现了孙悟空,所以要想得到有效的票数,我们要拿vote中的合法名单去name中比对,去掉类似于孙悟空这种票。
d = {}#建立一个空字典
n = 0#赋初值
with open(r'C:\Users\董贺贺\Desktop\name.txt','r')as f:
names = f.readlines()
with open(r'C:\Users\董贺贺\Desktop\vote.txt','r')as f:
votes = f.readlines()
for vote in votes:#readlines()是形成一个带\n的列表
ls = vote.split()
#split()会以默认的方式分割,并返回列表类型
if len(ls)==1:#将vote中一次性投两个人票的当做废票处理
for name in names:
if name.count(ls[0])==1:
#拿去比对
n += 1
d[ls[0]]=d.get(ls[0],0) + 1
print('有效票数{}张'.format(n))
为了验证我的想法,我重新更改了代码实现了同样的功能:
d = {}#建立一个空字典
new_names = []
n = 0#赋初值
with open(r'C:\Users\董贺贺\Desktop\name.txt','r')as f:
names = f.readlines()
with open(r'C:\Users\董贺贺\Desktop\vote.txt','r')as f:
votes = f.readlines()
#split()会以默认的方式分割,并返回列表类型
for name in names:
new_names.append(name.strip('\n'))
##print(new_names)
for vote in votes:#readlines()是形成一个带\n的列表
ls = vote.split()
if len(ls)==1:#将vote中一次性投两个人票的当做废票处理
if ls[0] in new_names:
n += 1
d[ls[0]]=d.get(ls[0],0) + 1
print('有效票数{}张'.format(n))
问题二
涉及到items()的使用和sort()函数
d = {}
n = 0
with open(r'C:\Users\董贺贺\Desktop\name.txt','r')as f:
names = f.readlines()
with open(r'C:\Users\董贺贺\Desktop\vote.txt','r')as f:
votes = f.readlines()
for vote in votes:
ls = vote.split()
for name in names:
if name.count(ls[0])==1:
n += 1
d[ls[0]]=d.get(ls[0],0) + 1
md = list(d.items())
md.sort(key=lambda x:x[1],reverse=True)#原地修改,返回值为None
print('班长是{}同学,共得到{}票'.format(md[0][0],md[0][1]))
- 要注意sort()与sorted()区别
sort()原地修改别表对象,返回值为None,所以这里不需要新变量接收!
sorted()会在列表对象的拷贝进行修改,返回修改后,所以这里要用一个变量来接收!
-
第三题
import jieba
text = ''
with open(r'C:\Users\董贺贺\Desktop\a.txt','r')as f1:
lines = f1.readlines()
with open(r'C:\Users\董贺贺\Desktop\out.txt','w')as f2:
for line in lines:
text = text + line.strip('\n')
words = jieba.lcut(text)
for w in words:
f2.write(w+'\n')
D = {}
with open(r'C:\Users\董贺贺\Desktop\out.txt','r')as f:
lines = f.readlines()
for line in lines:
key = line.strip('\n')
D[key] = D.get(key,0) + 1
sym = [',','、','。']
for ch in sym:
D.pop(ch,'不存在')
new_D = list(D.items())
new_D.sort(key=lambda x:x[1],reverse=True)
print(new_D)
D:\anaconda\python.exe C:/Users/董贺贺/Desktop/jieba_1.py
[('的', 7), (',', 4), ('用', 2), ('得', 2), ('秋风', 1), ('时光', 1), ('旋律', 1), ('桂花', 1), ('芬芳', 1), ('苹果', 1), ('馨香', 1), ('菊花', 1), ('灿烂', 1), ('牵牛花', 1), ('奔放', 1), ('一串红', 1), ('艳丽', 1), ('把', 1), ('一望无际', 1), ('田野', 1), ('乡村', 1), ('演绎', 1), ('在', 1), ('自然', 1), ('中', 1), ('沉醉', 1), ('渲染', 1), ('天地间', 1), ('空旷', 1), ('而', 1), ('又', 1), ('阳刚', 1)]