我在填報夏令營申請表的時候,發現其中有乙個要統計其中的各個科目成績分數段的乙個選項,而我又想起來這些天學的許多例項,想利用python編出一段可以處理這部分資料的乙個程式,應用到的所有的模組均為我之前部落格例項中的源**。
填報資訊需要的資料如下:
如圖我們發現我們需要統計所有的成績在各個分數段有多少科目,我也不知道一共有多少科目,如下是我的思路:
1、獲取一段不定長的資料
我們可以使用計算統計量例項中的第乙個函式
def getnum():
#獲取不定長的數字
nums=
inumstr=input("請輸入數字(回車退出):")
while inumstr !="":
inumstr=input("請輸入數字(回車退出):")
return nums
2、主函式,給分數分類
我們可以使用在之前的bmi計算的分段的思想的**進行改造:
在bmi中的**為:
if bmi<18.5:
who,nat="偏瘦","偏瘦"
elif 18.5<=bmi<24:
who,nat="正常","正常"
elif 24<=bmi<25:
who,nat="正常","偏胖"
elif 25<=bmi<28:
who,nat="偏胖","偏胖"
elif 28<=bmi<30:
who,nat="偏胖","肥胖"
else:
who,nat="肥胖","肥胖"
我們改為:
for num in numbers:
if num>=90:
ch='優秀'
elif 80<=num<=89:
ch='良好'
elif 70<=num<=79:
ch='中等'
else:
ch='及格'
(因為我無不及格資料,所以可以直接將60—69作為else)
3、利用字典的資料型別來得到所需要的資料
在文字詞頻統計例項中,我們利用了字典型別來統計了出現詞彙的頻次。
原**為:
for word in words:
counts[word]=counts.get(word,0)+1
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=true)
for i in range(10):
word,count=items[i]
print("".format(word,count))
我們發現,首先我們不需要排序,所以可以將轉化為列表的部分可以不使用。
我們改為:
counts[ch] = counts.get(ch,0)+1
for ch in ['優秀','良好','中等','及格']:
print("{}:{}".format(ch,counts[ch]))
(counts[ch] = counts.get(ch,0)+1巢狀在for迴圈中)
而結果我發現:
錯誤原因是因為在字典中未出現「中等」這個鍵,所以會發生錯誤,所以如果使用這段程式就必須要在每乙個分數段都存在至少乙個資料,這是我們無法控制的情況。
所以我們需要 改進最後一行**:
改為:
for ch in ['優秀','良好','中等','及格']:
print("{}:{}".format(ch,counts.get(ch,0)))
即為若沒有此字元,則為0。
這樣我們的程式的函式部分就完成了,加入主函式即可執行,完整**如下:
#自行處理成績排名
def getnum():
#獲取不定長的數字
nums=
inumstr=input("請輸入數字(回車退出):")
while inumstr !="":
inumstr=input("請輸入數字(回車退出):")
return nums
def mean(numbers):
#分類函式
counts = {}
for num in numbers:
if num>=90:
ch='優秀'
elif 80<=num<=89:
ch='良好'
elif 70<=num<=79:
ch='中等'
else:
ch='及格'
counts[ch] = counts.get(ch,0)+1
for ch in ['優秀','良好','中等','及格']:
print("{}:{}".format(ch,counts.get(ch,0)))
n=getnum()
m=mean(n)
執行結果如下:
我們可以發現,在生活中我們有許許多多的地方可以使用python進行**的編寫,並且利用學過的**內容和思想我們可以編出功能更加強大的**,所以在生活中我們要善於發現,並且自己嘗試利用工具去編寫**,耗費一些時間去進行更深入的**(emmmmm…我在填資訊的時候發現登陸失效了,時間太長了哈哈哈哈),這樣一定能快速掌握一定的技巧的!
2021電子資訊夏令營面經
據說1000多人報名,夏令營收了200人,實際參加180左右。第一天實驗室宣講,各個實驗室都會宣講,南開ai主要以自動化學科為主,但是也比較交叉,也有一些純做演算法的老師,主要是影象和群體智慧型。第二天面試,六人群面,所在組都是211和少數985的,生源還不錯沒雙非。面試分三輪,第一輪分別三分鐘口頭...
2020山東資訊學夏令營遊記
中午在學校集合,和勝利一中的大佬一起乘車去日照的山東外國語職業技術大學。下午到了大學,天空靜靜地下著濛濛的雨,打傘似乎又有些多餘,帶上帽子已足夠。在門口等著車一趟一趟接送到宿舍門口,過了體溫檢查正準備上車,才發現車已經坐滿,便在檢測口後面多等了一趟車。來到宿舍樓下門口,又等教練拿來飯卡,大概等了30...
北大資訊學夏令營模擬2019 5 21 神犇
時限 2s 空限 256mb 這題非常容易想到先做個字首和 a,b,c 分別表示三個人的粉絲數 不妨變成 a b,a c,b c 這樣相當於要從前面的字首中選個三維都不一樣的,使異或和最大。那麼這個可以暴力容斥地建出八種trie 每一維選和不選 然後自高位到低位的貪心,有的話走過去即可。注意如果有兩...