《Python数据分析、挖掘与可视化》课后题答案
第⼆章课后题答案
1.输⼊⼀个包含若⼲⾃然数的列表,输出这些⾃然数的平均值,结果保留3位⼩数。
ls=eval(input())
ans=float(sum(ls)/len(ls))
print('{:.3f}'.format(ans))
2.输⼊⼀个包含若⼲⾃然数的列表,输出这些⾃然数降序排列后的新列表。
ls=eval(input())
ls=sorted(ls,reverse=True)
print(ls)
3.输⼊⼀个包含若⼲⾃然数的列表,输出⼀个新列表,新列表中每个元素为原列表中每个⾃然数的位数。
ls=eval(input())
ans=list()
for i in ls:
st=str(i)
ans.append(len(st))
sumifs函数的使用方法日期print(ans)
4.输⼊⼀个包含若⼲数字的列表,输出其中绝对值最⼤的数字。
ls=eval(input())
m=ls[0]
for i in ls:
menustrip怎么实现页面切换if abs(i)>m:
m=i
print(m)
5.输⼊⼀个包含若⼲整数的列表,输出这些整数的乘积。
ls=eval(input())
ans=1
for i in ls:
ans*=i
print(ans)
6.输⼊两个包含若⼲整数的等长列表,把这两个列表看作两个向量,输出这两个向量的内积。
ls1=eval(input())
ls2=eval(input())
ans=0
for i in range(min(len(ls1),len(ls2))):
ans+=ls1[i]*ls2[i]
print(ans)
第三章课后题答案python数据分析基础教程答案
1.输⼊⼀个字符串,输出其中每个字符的出现次数。(⽤Counter类)
2.输⼊⼀个字符串,输出其中只出现了⼀次的字符及其下标。
3.输⼊⼀个字符串,输出其中每个唯⼀字符最后⼀次出现的下标。
4.输⼊包含若⼲集合的列表,输出这些集合的并集。(⽤reduce()函数和operator模块)
5.输⼊⼀个字符串,输出加密后的结果字符串。加密规则:每个字符的Unicode编码和下⼀个字符的Unicode编码相减,⽤这个差的绝对值作为Unicode编码,对应的字符作为当前位置上字符的加密结果,最后⼀个字符和第⼀个字符进⾏运算。
6.输⼊⼀个字符串,判断是否回⽂。(⽤切⽚)
第四章课后题答案
1.接收⼀个正整数作为参数,返回对其进⾏因数分解后的结果列表。
num = int(input())
ls = []
i=2
while i!=num:
if num % i == 0:
num /= i
ls.append(i)
i=2
else:
i=i+1
ls.append(i)
print(ls)
2.接收两个正整数参数n和a(要求a为⼩于10的⾃然数),计算形式如a+aa+aaa+....+aa....aaa的表达式前n项的值。
a,n=input().split()
a,n=int(a),int(n)
sum,tmp=0,a
for i in range(n):
sum+=tmp
tmp=tmp*10+a
print(sum)
3.模拟报数游戏。有n个⼈围成⼀圈,从0到n-1按顺序编号,从第⼀个⼈开始从1到k报数,报到k的⼈推出圈⼦,然后圈⼦缩⼩,从下⼀个⼈继续游戏,问最后留下的是原来的⼏号。
n,k=input().split()
n,k=int(n),int(k)-1
ls=[i for i in range(n)]
while n > k+1:
ls.pop(k)
for i in range(k):
a=ls.pop(0)
ls.append(a)
n = n-1
while n>1:
tmp = k % n
ls.pop(tmp)
for i in range(k):
a=ls.pop(0)
ls.append(a)
n = n - 1
print(ls)
4.接收⼀个字符串作为参数,判断该字符串是否回⽂。
st=input()
l,f=len(st),1
for i in range(l):
if st[i]!=st[l-i-1]:
f=0
break
if f==0:
if f==0:
print("False")
else:
print("True")
第五章课后题答案
#例题1.
合并两个.txt⽂件内容(交替写)
f1 = open('D:pywork/',encoding='UTF-8')
f2 = open('D:pywork/',encoding='UTF-8')
with open('D:pywork/','w') as fp:
with f1,f2:
while True:
adline()
if line:
print('1 .txt:',line)
fp.write(line)
else:
htmltextarea设置字体大小
flag=1
break
adline()
if line:
print('2 .txt:',line)
fp.write(line)
else:
flag=0
break
f3 = f1 if flag == 0 else f2
h = 1 if flag == 0 else 2
for line in f3:
print(h,'.txt:',line)
fp.write(line)
#例题2.
把信息写⼊JSON⽂件,再读取并输出
import json
infor=[
{'⼩区名称':'⼩区A','均价':8000,'⽉交易量':20},
{'⼩区名称':'⼩区B','均价':8500,'⽉交易量':35},
{'⼩区名称':'⼩区C','均价':7800,'⽉交易量':50},
{'⼩区名称':'⼩区D','均价':12000,'⽉交易量':18} ]
with open('D:pywork/eg2_房价信息.json','w') as f:
json.dump(infor,f,indent=4,separators=[',',':'])
#indent表⽰缩进,⼀般写为4 or 2
#separators(元素之间⽤'逗号'隔开,key和内容之间⽤'冒号'隔开)
with open('D:pywork/eg2_房价信息.json') as f:
info=json.load(f)
for i in info:
print(i)
#例题3.
模拟⽣成饭店⾃2020年1⽉1⽇开始,连续100天试营业期间营业额数据写⼊CSV⽂件。两列,⽇期 + 营业额为表头,基础营业额为500,每天增加5 + 5~50元。
mvc是什么牌子口红from csv import reader,writer
from random import randrange
from datetime import date,timedelta
with open('D:pywork/eg3_data.csv','w') as f:
w=writer(f)
w.writerow(['⽇期','销量'])
Date=date(2020,1,1)
for i in range(100):
amount = 500 + i*5 + randrange(5,50)
w.writerow([str(Date) , amount])
Date = Date + timedelta(days=1)
with open('D:pywork/eg3_data.csv','r') as f:
for line in reader(f):
if line:
print(*line)
#操作题4.
求超市营业额 1.xlsx 中每个员⼯的销售总额、每个时段的销售总额、每个柜台的销售总额
from openpyxl import load_workbook
persons,periods,goods = dict(),dict(),dict()
sheet = load_workbook('D:pywork/test4_超市营业额.xlsx').worksheets[0]
for index,row in ws):
#index获取⾏标,row获取表格元组
if index == 0:
continue #跳过列标
_, name, _, time, num, good = map(lambda cell:cell.value,row)
#映射row,读取员⼯、时段、⾦额、柜台
persons[name] = (name,0) + num
periods[time] = (time,0) + num
goods[good] = (good,0) + num
print(persons,periods,goods,sep='\n')
#操作题5.
追加⼀列将每个⼈的爱好.xlsx 的内容汇总
from openpyxl import load_workbook
exl=load_workbook('D:pywork/test5_每个⼈的爱好.xlsx')
sheet=exl.worksheets[0]
tmp = dict()
for index,row in ws):
if index == 0:
excel表replace公式title = tuple(map(lambda cell:cell.value,row))[1:]
#获取所有爱好
add = len(title) + 2
else:
name = row[0].value #读个名字
val = tuple(map(lambda cell:cell.value,row))[1:]
result = ','.join((title[i] for i , v in enumerate(val) if v == '是'))
tmp[name] = result
exl.save('D:pywork/test5_每个⼈的爱好.xlsx')
print(tmp)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论