python基礎——4、python應用(文件操作,字典,列表,輸出格式)——(YZ)


本次的內容為python的應用,關於文件、字典、統計應用,均多應用列表、字典。

習題一

  讀入文件pmi_days.csv,完成以下操作:
  1.統計質量等級對應的天數,例如:
  優:5天
  良:3天
  中度污染:2天
  2.找出PMI2.5的最大值和最小值,分別指出是哪一天。

以下是代碼內容:

import csv

z1 = 0
z2 = 0
z3 = 0
z4 = 0
listp = []
listd = []
d1 = 0

with open("pmi_days .csv", 'r') as f:
reader = csv.reader(f)
fieldnames = next(reader) # 獲取數據的第一列,作為后續要轉為字典的鍵名 生成器,next方法獲取
# print(fieldnames)
csv_reader = csv.DictReader(f,fieldnames=fieldnames) # self._fieldnames = fieldnames # list of keys for the dict 以list的形式存放鍵名
for row in csv_reader:
dict = {}
for key, value in row.items():
dict[key] = value
if value == '優':
z1 = z1 + 1
if value == '良':
z2 = z2 + 1
if value == '輕度污染':
z3 = z3 + 1
if value == '中度污染':
z4 = z4 + 1
if key == 'PM2.5':
listp.append(int(dict.get("PM2.5")))
listd.append(dict.get("日期"))


for j in range(0, len(listp)):
if listp[j] == max(listp):
d1 = listd[j]
if listp[j] == min(listp):
x1 = listd[j]

print("優:{}天".format(z1))
print("良:{}天".format(z2))
print("輕度污染:{}天".format(z3))
print("中度污染:{}天".format(z4))
print("PM2.5最高:{} PM2.5的值:{}".format(d1,max(listp)))
print("PM2.5最低:{} PM2.5的值:{}".format(x1,min(listp)))

以下是運行結果:

 

 

本題更多的是格式上的規划,通過循環,判斷控制輸入與格式達到,篩選出想要的內容、輸出結果,並呈現出想要的格式。

題目不難,更多的是邏輯上要清晰,考慮好條件篩選的內容。

 

習題二

  讀入文件1980-2018GDP.csv,完成以下操作:
  1.按行輸出每年GDP數據,表頭列名如文件第1行所示。

  2.將各年GDP數據轉換成字典格式,以年份為keys,其它值為values(數據類型為列表方式),例如:
  {
  2017:[827121.7,6.8%,60989]
  ........
  }

  3.遍歷字典數據,求出GDP的最小值與最大值,並輸出數據與對應的年份。

  以下是代碼內容:

 

1

import csv
list=[]
comp_g=[]
comp_y=[]
dict_1={}


with open("1980-2018GDP.csv", 'r') as f:
reader = csv.reader(f)
fieldnames = next(reader)
print("第一題:\n")
print(fieldnames)
for row in reader:
list.append(row)
for i in range(0,len(list)):
print("%6s"%list[i][0],"\t\t%-10s"%list[i][1],"\t%-12s"%list[i][2],"\t%-13s"%list[i][3],list[i][4])


with open("1980-2018GDP.csv", 'r') as f:
reader = csv.reader(f)
fieldnames = next(reader)
csv_reader = csv.DictReader(f, fieldnames=fieldnames)
for row in csv_reader:
dict = {}
for key, value in row.items():
dict[key] = value
if key == 'GDP(億元)':
comp_g.append(float(dict.get('GDP(億元)')))
comp_y.append(int(dict.get('年份')))
#如果屬性名為'GDP(億元)'則把對應年份、GDP值放入列表
#供應給最大最小比較之用。


for i in range(0, len(list)):
dict_1[comp_y[i]] = list[i][1:]
#第二題
#將年份作為字典dict_1的鍵
#將年份對應內容組成的列表設置成值
#即可做到規范輸出格式

for j in range(0, len(comp_g)):
if comp_g[j] == max(comp_g):
ma = comp_y[j]
if comp_g[j] == min(comp_g):
mi = comp_y[j]

   print("第二題:\n")

print("各年GDP數據字典格式:")

print(dict_1)#輸出題目要求的格式
   print("第三題:\n")
    print("GDP(億元)最大年份:{}\t最大值:{}".format(ma,max(comp_g)))# 求出GDP的最小值與最大值
print("GDP(億元)最小年份:{}\t最小值:{}".format(mi,min(comp_g)))# 並輸出數據與對應的年份。

 

以下是運行結果:

 

 

 

 

本題更多的是在對代碼原理的理解后對,數據統計整理的使用。

根據源代碼,進行修改,通過增加限制條件,

通過if等判斷條件統計中的詞匯,來搜索出你想要的對應信息的數據。

第一小題

通過循環,以及形成列表

最終控制輸出

第二小題

將年份作為字典dict_1的鍵

將年份對應內容組成的列表設置成值

即可做到規范輸出格式

第三小題

通過與上一題一樣的,增加if條件

做到讓值的大小比較做索引

來輸出年份

 

本次習題結束。

 

所以說很多時候不是你不會,只是缺少更多的思考,更多的細心罷了..

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM