第一章:搭建編程環境
1.在Windows系統中搭建Python編程環境。html
1.1 安裝Pythonpython
訪問http://python.org/downloads/ ,點擊下載到本地,後安裝。git
1.2安裝文本編輯器(IDE)編程
訪問https://www.jetbrains.com/zh/pycharm/specials/pycharm/pycharm.html? 下載pycharm,後安裝。ruby
第二章:變量和簡單數據類型數據結構
1.變量app
命名和使用:變量名只能包含字母、數字和下劃線。變量名能夠字母或下劃線打頭,但不能以數字打頭;編輯器
變量名不能包含空格,但可以使用下劃線來分隔其中的單詞;函數
不要將Python關鍵字和函數名用做變量名,即不要使用Python保留用於特殊用途的單詞;工具
變量名應既簡短又具備描述性;
慎用小寫字母l和大寫字母O,由於它們可能被人錯當作數字1和0。
2.字符串:用引號括起的都是字符串,其中的引號能夠是單引號,也能夠是雙引號。
2.1使用方法修改字符串的大小寫。
title() 以首字母大寫的方式顯示每一個單詞,即將每一個單詞的首字母都改成大寫;
lower()將字符串先轉換爲小寫;
2.2合併(拼接)字符串。
加號(+ )來合併字符串。
2.3使用製表符或換行符來添加空白。 (空白 泛指任何非打印字符,如空格、製表符和換行符)
使用字符組合\n,在字符串中添加換行符。
>>> print("Python") Python >>> print("\tPython") Python
使用字符組合\t,在字符串中添加製表符。
>>> print("Languages:\nPython\nC\nJavaScript") Languages: Python C JavaScript
在同一個字符串中同時包含製表符和換行符。字符串"\n\t" 讓Python換到下一行,並在下一行開頭添加一個製表符。
>>> print("Languages:\n\tPython\n\tC\n\tJavaScript") Languages: Python C JavaScript
2.4刪除空白
使用方法rstrip(),確保字符串末尾沒有空白。
使用方法lstrip(),剔除字符串開頭的空白。
使用方法strip(),同時剔除字符串兩端的空白
3.數字。
3.1整數
可對整數執行加(+ )減(- )乘(* )除(/ )運算;兩個乘號表示乘方運算;
3.2浮點數
Python將帶小數點的數字都稱爲浮點數 。
3.3使用函數str() 避免類型錯誤
4.註釋。
4.1單行註釋用井號(# )標識。多行註釋用三個單雙引號(""" """)標識。
第 三 章:列表簡介
1.訪問列表元素
列表是有序集合,知道元素的位置或索引就可找到該元素。
索引從0而不是1開始。 經過將索引指定爲-1 ,可以讓Python返回最後一個列表元素。
2.修改、添加和刪除元素。
2.1修改列表元素
❶ motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) ❷ motorcycles[0] = 'ducati' print(motorcycles)
2.2在列表中添加元素。
方法append() 將元素'ducati' 添加到了列表末尾,而不影響列表中的其餘全部元素。
2.3. 在列表中插入元素。
使用方法insert() 可在列表的任何位置添加新元素。
2.4從列表中刪除元素。
使用del 語句刪除元素,使用del 可刪除任何位置處的列表元素,條件是知道其索引。
方法pop() 可刪除列表末尾的元素,並讓你可以接着使用它。
使用方法remove()可刪指定元素的值,也可接着使用它的值,只刪除第一個指定的值。
3.組織列表
3.1使用方法sort() 對列表進行永久性排序。使用函數sorted() 對列表進行臨時排序。
3.2倒着打印列表:使用方法reverse()來反轉列表元素的排列順序。
3.3肯定列表的長度。使用函數len() 可快速獲悉列表的長度。
第 四 章:操做列表
1.遍歷整個列表
1.1使用for 循環遍歷列表的全部元素.
2.建立數值列表
使用函數range() 來打印一系列的數字.
for value in range(1,5): print(value) 結果爲:1 2 3 4
使用range() 建立數字列表。
numbers = list(range(1,6)) print(numbers) 結果爲:[1,2,3,4,5]
使用函數range() 時,還可指定步長。例如,下面的代碼打印1~10內的偶數:
even_numbers = list(range(2,11,2)) print(even_numbers) 結果爲:[2, 4, 6, 8, 10]
對數字列表執行簡單的統計計算
>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] >>> min(digits) 0
>>> max(digits) 9
>>> sum(digits) 45
3.切片。
如:[1:4]指從列表第2個元素開始到第5個元素結束。
3.1遍歷切片
若是要遍歷列表的部分元素,可在for 循環中使用切片。
3.2複製列表
方法是同時省略起始索引和終止索引([:] )
4.元組:不可變的列表。使用圓括號()
4.1不能給元組的元素賦值
4.2遍歷元組中的全部值
像列表同樣,也可使用for 循環來遍歷元組中的全部值。
4.3修改元組變量
雖然不能修改元組的元素,但能夠給存儲元組的變量賦值。
若是須要存儲的一組值在程序的整個生命週期內都不變,可以使用元組。
5.集合 :
相似於列表,但每一個元素都必須是獨一無二的。set(),是無序的,不可重複的數據集合。
5.1增添:經過add()添加元素;經過update()添加元素
5.2刪除:方法remove():指定刪除
pop():隨機刪除.
clear():清空集合
5.3集合的其它操做。
交集 :&
並集:|
差集:-
反交集:^
第 五 章: IF語句
1.條件測試
1.1.檢查是否相等,使用兩個等號(==)
1.2.檢查是否不相等,使用驚歎號和等號(!= ),其中的驚歎號表示不。
1.3.條件語句中可包含各類數學比較,如小於、小於等於、大於、大於等於。
1.4.使用and 檢查多個條件;使用or 檢查多個條件。
1.5.判斷特定的值是否已包含在列表中,可以使用關鍵字in。
1.6.檢查特定值是否不包含在列表中,可以使用關鍵字not in 。
2.布爾表達式
布爾表達式的結果要麼爲True ,要麼爲False 。
3. if 語句
若是條件測試的結果爲True ,Python就會執行緊跟在if 語句後面的代碼;不然
Python將忽略這些代碼。
4.if-else 語句
老是會執行兩個操做中的一個。
常常須要檢查超過兩個的情形,爲此可以使用Python提供的if-elif-else 結構。
使用多個elif 代碼塊。
省略else 代碼塊
第 六 章 字典
1.使用字典
字典 是一系列鍵—值對 。每一個鍵 都與一個值相關聯,你可使用鍵來訪問與之相關聯的值。與鍵相關聯的值能夠是數字、字符串、列表乃至字典。
2.訪問字典中的值
alien_0 = {'color': 'green'} print(alien_0['color']) 結果爲:green
3.添加鍵—值對
要添加鍵—值對,可依次指定字典名、用方括號括起的鍵和相關聯的值。
4.修改字典中的值。
要修改字典中的值,可依次指定字典名、用方括號括起的鍵以及與該鍵相關聯的新值
5.刪除鍵—值對
使用del 語句時,必須指定字典名和要刪除的鍵。
6.遍歷全部的鍵—值對
user = { 'username': 'efermi','first': 'enrico','last': 'fermi', } ❶ for key, value in user_0.items(): ❷ print("Key: " + key) ❸ print("Value: " + value)
要編寫用於遍歷字典的for 循環,可聲明兩個變量,用於存儲鍵—值對中的鍵和值. for 語句的第二部分包含字典名和方法items()
7.遍歷字典中的全部鍵 :方法keys()
languages = { 'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python', } for name in languages.keys(): print(name.title())
8.按順序遍歷字典中的全部鍵
獲取字典的元素時,獲取順序是不可預測的。要以特定的順序返回元素,一種辦法是在for 循環中對返回的鍵進行排序,可以使用函數sorted() 來得到按特定順序排列的鍵列表的副本。
languages = { 'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python', } for name in sorted(languages.keys()): print(name.title() + ", thank you for taking the poll.")
9.遍歷字典中的全部值
使用方法values() ,它返回一個值列表,而不包含任何鍵。
languages = { 'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python', } print("The following languages have been mentioned:") for language in languages.values(): print(language.title())
10.嵌套
須要將一系列字典存儲在列表中,或將列表做爲值存儲在字典中。即爲嵌套
第 七 章 用戶輸入和while 循環
1.函數input() 的工做原理:
函數input() 讓程序暫停運行,等待用戶輸入一些文本。獲取用戶輸入後,Python將其存儲在一個變量中,以方便你使用。
1.1使用int() 來獲取數值輸入
>>> age = input("How old are you? ") How old are you? 21 >>> age '21'
1.2求模運算符
求模運算符 (%)是一個頗有用的工具,它將兩個數相除並返回餘數。
2.while 循環簡介
for 循環用於針對集合中的每一個元素都一個代碼塊,而while 循環不斷地運行,直到指定的條件不知足爲止。
2.1使用while 循環
number = 1 while number <= 5: print(number) number += 1
2.2使用標誌
可定義一個變量,用於判斷整個程序是否處於活動狀態。這個變量被稱爲標誌.
2.3使用break 退出循環
break 語句用於控制程序流程,能夠當即退出while 循環,再也不運行循環中餘下的代碼,也無論條件測試的結果如何。
2.4在循環中使用continue
使用continue 語句,返回到循環開頭,並根據條件測試結果決定是否繼續執行循環.
2.5避免無限循環
每一個while 循環都必須有中止運行的途徑,這樣纔不會沒完沒了地執行下去。
2.6使用用戶輸入來填充字典
responses = {} # 設置一個標誌,指出調查是否繼續 polling_active = True while polling_active: # 提示輸入被調查者的名字和回答 name = input("\nWhat is your name? ") response = input("Which mountain would you like to climb someday? ") # 將答卷存儲在字典中 responses[name] = response # 看看是否還有人要參與調查 repeat = input("Would you like to let another person respond? (yes/ no) ") if repeat == 'no': polling_active = False # 調查結束,顯示結果 print("\n--- Poll Results ---") for name, response in responses.items(): print(name + " would like to climb " + response + ".")
第 八 章 函數
1.定義函數
def greet_user(): """顯示簡單的問候語""" print("Hello!") greet_user()
1.1實參和形參
實參是調用函數時傳遞給函數的信息。
1.2位置實參
Python必須將函數調用中的每一個實參都關聯到函數定義中的一個形參。
位置實參的順序很重要,使用位置實參來調用函數時,若是實參的順序不正確,結果可能出乎意料。
1.3關鍵字實參
關鍵字實參 是傳遞給函數的名稱—值對。你直接在實參中將名稱和值關聯起來了,所以向函數傳遞實參時不會混淆。
1.4默認值
編寫函數時,可給每一個形參指定默認值
2.返回值
2.1讓實參變成可選的
有時候,須要讓實參變成可選的,這樣使用函數的人就只需在必要時才提供額外的信息。可以使用默認值來讓實參變成可選的。
3.返回字典
函數可返回任何類型的值,包括列表和字典等較複雜的數據結構
4.結合使用函數和while 循環
def get_formatted_name(first_name, last_name): """返回整潔的姓名""" full_name = first_name + ' ' + last_name return full_name.title() # 這是一個無限循環! while True: print("\nPlease tell me your name:") f_name = input("First name: ") l_name = input("Last name: ") formatted_name = get_formatted_name(f_name, l_name) print("\nHello," + formatted_name + "!")
5.傳遞列表
def greet_users(names): """向列表中的每位用戶都發出簡單的問候""" for name in names: msg = "Hello, " + name.title() + "!" print(msg) usernames = ['hannah', 'ty', 'margot'] greet_users(usernames)
6.結合使用位置實參和任意數量實參(*args)、關鍵字實參(**kwargs)。
def users(age,*args,**kwargs): """建立一個字典""" profile = {} profile['age'] = age for key, value in users.items(): profile[key] = value return profile users = build_profile(18,'zhangsan',location='princeton',field='physics')
7.導入特定的函數:
from module_name import function_name
8.使用as 給函數指定別名
from pizza import make_pizza as mp
9.使用as 給模塊指定別名
import pizza as p
10.導入模塊中的全部函數
from pizza import *
第 9 章 類
1.建立和使用類:類中的函數稱爲方法。
class Dog():
def __init__(self, name, age):
"""初始化屬性name和age"""
self.name = name
self.age = ag
self.high = 5
def sit(self):
"""模擬小狗被命令時蹲下"""
print(self.name.title() + " is now sitting.")
def roll_over(self):
"""模擬小狗被命令時打滾"""
print(self.name.title() + " rolled over!")
my_dog = Dog('xiaohei', 6)
print(my_dog.name)
1.1 方法__init__():一個特殊的方法
在方法的定義中,形參self 必不可少,還必須位於其餘形參的前面。
1.2my_dog:一個實例,能夠調用Dog 類中定義的任何方法。
1.3給屬性指定默認值
self.high = 5
2.繼承
編寫類時,並不是老是要從空白開始。若是你要編寫的類是另外一個現成類的特殊版本,可以使用繼承。一個類繼承 另外一個類時,它將自動得到另外一個類的全部屬性和方法;原有的
類稱爲父類 ,而新類稱爲子類 。子類繼承了其父類的全部屬性和方法,同時還能夠定義本身的屬性和方法。
class Car(): snip
class ElectricCar(Car): """電動汽車的獨特之處"""
def __init__(self, make, model, year): """初始化父類的屬性"""
super().__init__(make, model, year)
self.battery_size = 70 #給子類定義的屬性
def describe_battery(self): #給子類定義的方法
"""打印一條描述電瓶容量的消息"""
print("This car has a " + str(self.battery_size) + "-kWh battery."
2.1給子類定義屬性和方法
self.battery_size = 70
def describe_battery(self)
2.2將實例用做屬性
class Car(): --snip--
class Battery(): """一次模擬電動汽車電瓶的簡單嘗試""" def __init__(self, battery_size=70): """初始化電瓶的屬性""" self.battery_size = battery_size def describe_battery(self): """打印一條描述電瓶容量的消息""" print("This car has a " + str(self.battery_size) + "-kWh battery.")
class ElectricCar(Car): """電動汽車的獨特之處""" def __init__(self, make, model, year): """ 初始化父類的屬性,再初始化電動汽車特有的屬性 """ super().__init__(make, model, year) self.battery = Battery() #建立一個新的Battery 實例(因爲沒有指定尺寸,所以爲默認值70 ),並將該實例存儲在屬性self.battery 中。
my_tesla = ElectricCar('tesla', 'model s', 2016) print(my_tesla.get_descriptive_name())
3.導入類
3.1.Python容許將類存儲在模塊中,而後在主程序中導入所需的模塊。
3.2.導入單個類.
from car import Car
3.3.從一個模塊中導入多個類
from car import Car, ElectricCar
3.4導入整個模塊
import car
3.5導入模塊中的全部類
from module_name import *
4.Python標準庫
Python標準庫 是一組模塊,安裝的Python都包含它。