村长选举
'''
#L2-007-村长选举
#使用字典和列表型变量完成村长选举。某村有40名有选举权和被选举权的村民,名单在附件name.txt中,从这40名村民中选出一人当村长,40人的投票信息由附
#件vote.txt中给出,每行是一张选票的信息,有效票中得票最多的村民当选。
#问题一:请从vote.txt 中筛选出无效票写入文件vote1.txt 。有效票的含义是:选票中只有一个名字且该名字在name.txt文件列表中,不是有效票的票称之为无效
#票。
'''
f = open("name.txt", encoding="utf-8")
names = f.readlines()
f.close()
f = open("vote.txt", encoding="utf-8")
votes = f.readlines()
f.close()
D = {}
NUM = 0
print(votes)
for vote in votes:
num = len(vote.split()) # 分解成列表,并求列表长度(元素个数)
if num == 1 and vote in names: # 仅一个且在姓名中,有效
D[vote[:-1]] = D.get(vote[:-1], 0) + 1
NUM += 1
else:
with open("vote1.txt", "a+", encoding="utf-8") as fi:
fi.write("{}".format(vote)) # 如果无效,保存到vote1文件内
'''
#L2-007-村长选举
#使用字典和列表型变量完成村长选举。某村有40名有选举权和被选举权的村民,名单在附件name.txt中,从这40名村民中选出一人当村长,40人的投票信息由附
#件vote.txt中给出,每行是一张选票的信息,有效票中得票最多的村民当选。
#问题一:请从vote.txt 中筛选出无效票写入文件vote1.txt 。有效票的含义是:选票中只有一个名字且该名字在name.txt文件列表中,不是有效票的票称之为无效
#票。
#问题二:给出当选村长的名字及其得票数。
#'''
f = open("name.txt", encoding="utf-8")
names = f.readlines()
f.close()
f = open("vote.txt", encoding="utf-8")
votes = f.readlines()
f.close()
D = {}
NUM = 0
for vote in votes:
num = len(vote.split()) # 分解成列表,并求列表长度(元素个数)
if num == 1 and vote in names: # 仅一个且在姓名中,有效
D[vote[:-1]] = D.get(vote[:-1], 0)+1
NUM += 1
l = list(D.items())
l.sort(key=lambda s: s[1], reverse=True)
name = l[0][0]
score = l[0][1]
print("有效票数为:{} 当选村民为:{},票数为:{}".format(NUM, name, score))
高校分类
txt = input("请输入类型序列:")
t = txt.split()
d = {}
for c in range(len(t)):
d[t[c]] = d.get(t[c], 0)+1
ls = list(d.items())
ls.sort(key=lambda x: x[1], reverse=True)
for k in ls:
print("{}:{}".format(k[0], k[1]))
学生就业
names = input("请输入各个同学行业名称,行业名称之间用空格间隔(回车结束输入):")
t = names.split()
d = {}
for c in range(len(t)):
d[t[c]]= d.get(t[c],0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 按照数量排序
for k in range(len(ls)):
zy,num = ls[k]
print("{}:{}".format(zy,num))
年龄统计
data = input() # 输入“姓名 年龄 性别”
s = 0
n = 0
i = 0
while data:
i = i+1
ls = data.split()
s = s+int(ls[1])
if ls[2] == '男':
n = n+1
data = input()
s = s/i
print("平均年龄是{:.2f} 男性人数是{}".format(s, n))
获取输入
while True:
s = input("请输入不带数字的文本:")
i = 0
for p in s:
if "0" <= p <= "9":
i = i+1
if i == 0:
break
print(len(s))
小明考试
data = input()
d = {}
while data:
t = data.split()
d[t[0]] = int(t[1])
data = input()
ls = list(d.items())
ls.sort(key=lambda x: x[1], reverse=True)
s1, g1 = ls[0]
s2, g2 = ls[len(ls) - 1]
sum = 0
for i in d.values():
sum = sum + int(i)
avg = sum/len(ls)
print("最高分课程是{}{}, 最低分课程是{}{}, 平均分是{:.2f}".format(s1, g1, s2, g2, avg))
明星投票
data = input()
d = {}
while data:
t = data.split()
d[t[0]] = int(t[1])
data = input()
ls = list(d.items())
ls.sort(key=lambda x: x[1], reverse=True)
s1, g1 = ls[0]
s2, g2 = ls[len(ls) - 1]
sum = 0
for i in d.values():
sum = sum + int(i)
avg = sum/len(ls)
print("最高分课程是{}{}, 最低分课程是{}{}, 平均分是{:.2f}".format(s1, g1, s2, g2, avg))
f = open("vote.txt",encoding="utf-8")
names = f.readlines()
f.close()
D = {}
for name in names:
if len(name.split())==1:
D[name[:-1]]=D.get(name[:-1],0) + 1
l = list(D.items())
l.sort(key=lambda s:s[1],reverse=True)
name = l[0][0]
score = l[0][1]
print("最具人气明星为:{},票数为:{}".format(name, score))
计算向量
ls = [111, 222, 333, 444, 555, 666, 777, 888, 999]
lt = [999, 777, 555, 333, 111, 888, 666, 444, 222]
s = 0
for i in range(len(ls)):
s+=ls[i]*lt[i]
print(s)
字符查找
import random
random.seed(2)
pdict= {'Alice':['123456789'],
'Bob':['234567891'],
'Lily':['345678912'],
'Jane':['456789123']}
name = input('请输入一个人名:')
if name in pdict:
print("{} {} {}".format(name,pdict.get(name)[0],random.randint(1000,9999)))
else:
print("对不起,您输入的用户信息不存在。")
一维列表
img = [0.244, 0.832, 0.903, 0.145, 0.26, 0.452]
filter = [0.1, 0.8, 0.1]
res = []
for i in range(len(img) - 2):
k = 0 # 有多个和,所以每次赋初始值0
for j in range(3): # 求3次累计和
k += filter[j] * img[i + j] # 求3次累计和
print('k={:.3f} ,filter[{}]={:.3f},img[{}+{}]={:.3f}'.format(k, j, filter[j], i, j, img[i + j]))
res.append(k)
for r in res:
print('{:.3f}'.format(r), end=' ')
全国大学排名
f = open('data.txt', 'r') # 读取文本
unis = {"美国": [], "英国": [], "瑞士": [], "新加坡": [], "中国": []} # 创建字典
for line in f: # 遍历文本
if line == "\n": # 如果文本是空行就跳过
continue
else:
text = line.split(",") # 用逗号分割文本
text[2] = text[2].replace("\n", "") # 替换国家文本尾部换行符号
unis[text[2]].append(text[1]) # 将学校名称添加到字典值的列表中
f.close()
for d in unis:
print('{:>4}: {:>4} : {}'.format(d, len(unis[d]), ",".join(unis[d]))) # 遍历字典,格式化输出内容
操作时间问题
sumtime = 0
percls = []
ts = {}
with open('out.txt', 'r') as f:
for line in f:
percls.append(line.strip('\n').split(","))
n=[x[1] for x in percls]
for i in range(len(n)):
sumtime+=eval(n[i])
ts={x[0]:x[2] for x in percls}
print('the total execute time is ', sumtime)
tns = list(ts.items())
tns.sort(key=lambda x: x[1], reverse=True)
for i in range(3):
print('the top {} percentage time is {}, spent in "{}" operation'.format(i, tns[i][1],tns[i][0]))