python入門利器-codecademy-分享一個簡單練習


對於數據分析的同學來講,要做的深入,R和Python是要會一個的,那零基礎怎么學呢?https://www.codecademy.com/ 是個不錯的選擇,它會以介紹、讓你練習、練習通過進入下一步(或者自己挑選某個章節)的方式進行練習,不會給你答案,要么正確通過,要么就放在那里,直到你會,可以清楚地看到自己哪個部份完成了多少,總體進度等。數學專業無理由懼怕編程的同學可以學R,你一看到R代碼就像是看到了自己學過的數學公式一樣,會更容易接受和理解。Python語言較為嚴格一些。

免費版本對於Python基礎的掌握已經夠了,學完這上邊的課程,基本上會對Python有一個基本了解,緊接着學習各個數據分析常用模塊(numpy、pandas、Matplolib)就會比較容易。比如下邊的例子其實是一個大章節里的10幾個小步驟完成的,每一步通過會進入下一步,循序漸進、由簡入繁,很好理解。codecademy上邊的練習不是按照項目,有點像模塊,但是我們的目標是用Python來支持數據分析工作,不是當Python程序員。

基礎步驟必須敲代碼,一步一步來,否則一個縮進就能把人干倒。

目的,求一個班級的平均成績及對應的成績類型。

#字典的定義方式
lloyd = { "name": "Lloyd", "homework": [90.0,97.0,75.0,92.0], "quizzes": [88.0,40.0,94.0], "tests": [75.0,90.0] } alice = { "name": "Alice", "homework": [100.0, 92.0, 98.0, 100.0], "quizzes": [82.0, 83.0, 91.0], "tests": [89.0, 97.0] } tyler = { "name": "Tyler", "homework": [0.0, 87.0, 75.0, 22.0], "quizzes": [0.0, 75.0, 78.0], "tests": [100.0, 100.0] }
若要打印學生的名稱及其成績: students
=[lloyd,alice,tyler] for each in students: print each["name"] print each["homework"] print each["quizzes"] print each["tests"] Lloyd [90.0, 97.0, 75.0, 92.0] [88.0, 40.0, 94.0] [75.0, 90.0] Alice [100.0, 92.0, 98.0, 100.0] [82.0, 83.0, 91.0] [89.0, 97.0] Tyler [0.0, 87.0, 75.0, 22.0] [0.0, 75.0, 78.0] [100.0, 100.0]
# 自定義一個函數求一個list的平均值
def average(numbers): total=sum(numbers) total=float(total) return total/len(numbers)

#自定義一個函數,求一個學生的綜合成績,先求出各個分類的平均成績,再分別乘以每個類別的權重,得到他的綜合成績 def get_average(student): homework
=average(student["homework"]) quizzes=average(student["quizzes"]) tests=average(student["tests"]) return 0.1*homework+0.3*quizzes+0.6*tests
#自定義一個函數,將成績分為不同等級 def get_letter_grade(score):
if score>=90: return "A" elif score>=80 and score<90: return "B" elif score>=70 and score<80: return "C" elif score>=60 and score<70: return "D" else: return "F"

#測試一下,求Lloyd的綜合成績 get_letter_grade(get_average(lloyd))

#定義一個函數,求一個班級的綜合成績 def get_class_average(students): results
=[]; for student in students: results.append(get_average(student)) return average(results)
#假設這個班有三個人
print get_class_average([lloyd,alice,tyler]) print get_letter_grade(get_class_average([lloyd,alice,tyler]))

 


免責聲明!

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



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