閱讀時間:
2019.08.25----2019.08.30:第一部分 基礎知識。
第2章:變量
1、變量的命名和使用
- 變量名只能包含字母、數字和下劃線。可以字母或者下劃線打頭,但不能以數字打頭。例如:可以為message_1,不能為1_message。
- 變量名不能包含空格,但可使用下劃線分隔。例如:變量名greeting_message,不能為greeting message。
- 不能用Python關鍵字和函數名作為變量名。
- 慎用小寫字母l和大寫字母O。
2、字符串
用引號括起來的都是字符串,其中的引號可以是單引號,也可以是雙引號。可以在字符串中包含引號和撇號。
- title()方法:以首字母大寫的方式顯示每個單詞。
- upper()方法:改為全部大寫。
- lower():改為全部小寫。
name
.
title
(
)
name
.
upper
(
)
name
.
lower
(
)
-
刪除空白字符,使用
.rstrip()
(刪除末尾)這種刪除只是暫時的要想永久刪除這個字符串的空白,必須將刪除操作的結果存回到變量中;.lstrip()
刪除開頭的空白;strip()
同時刪除字符串兩端的空白。 - str(age)將非字符串值轉為字符串。
第3章:列表
列表是一系列按特定順序排列的元素組成。可包含字母、數字等,元素之間可以沒有任何關系。用
[]
來表示列表,并用逗號分隔其中的元素。
bicycles
=
[
'trek'
,
'cannondale'
,
'redline'
]
使用print()打印出來時包含
[]
1、訪問列表元素
索引從0開始而不是1,Python可以通過索引
-1
直接訪問最后一個列表元素。
2、在列表中添加元素
-
在列表末尾添加,使用
.append('China')
-
在列表中插入元素,使用
insert()
,可在任何位置添加新元素,因此需要指定新元素的索引和值。moto.insert(0,'ducati')
3、從列表中刪除元素
-
del刪除,可刪除任何位置處的元素。
del moto[0]
-
pop()方法,刪除列表末尾的元素。
moto.pop()
-
pop(index),彈出列表中任何位置處元素。
moto.pop(0)
-
根據值刪除元素。
moto.remove('ducati')
,刪除掉ducati, 只刪除掉第一個指定的值。若刪除的值出現多次,需使用循環判斷。
4、組織列表
-
方法sort()
對列表進行永久性排序。
cars.sort()
,永久性修改了列表元素的排列順序。cars.sort(reverse=True)
進行逆向排序。 -
函數sorted()
對列表進行臨時排序。
sorted(cars,reverse=True)
-
反轉列表,
cars.reverse()
。不是按與字母相反的順序排列列表元素,而只是反轉列表元素的排列順序。reverse()為永久性修改。 -
函數len()獲取列表的長度。
len(cars)
。 Python計算列表元素時從1開始。
第4章:操作列表
1、for循環
cars
=
[
'bmw'
,
'audi'
,
'toyota'
,
'subaru'
]
for
car
in
cars
:
print
(
car
)
2、創建數字列表
-
使用函數range(),
range(1,5)
,打印出1~4。 -
使用函數list()將range()的結果直接轉換為列表,也可將range()作為list()的參數進行輸出。
numbers = list(range(1,5))
。函數range()還可指定步長,例如range(2,11,2)
,從2開始,不斷加2,直到達到或超過終止11。 -
數字列表的最大值、最小值、總和。
max(digits)、min(digits)、sum(digits)
3、使用列表的一部分
-
切片,指定第一個索引和最后一個索引加1,例如:
cars[0:3]
,打印0、1、2這3個元素;若沒有指定第一個索引,將從列表開頭開始,cars[:3]
。類似的,指定第一個索引,一直到最后,cars[1:]
-
復制列表,
new_cars = cars[:]
4、元組
列表是可修改可變化的數據集。
不可變的列表被稱為元組,元組使用圓括號
-
定義元組,
dimensions = (200, 50)
- 遍歷元組中的所有值,像列表一樣使用for循環遍歷。
- 修改元組變量。給元組變量賦值是合法的。
第5章:if語句
1、使用
in和not in
檢查特定值是否包含在列表中。
'bmw' in cars
2、
if-elif-else
結構
3、確定列表不是空
cars
=
[
'bmw'
,
'audi'
,
'toyota'
,
'subaru'
]
if
cars
:
#cars不為空
for
car
in
cars
:
print
(
"buy "
+
car
)
print
(
"\nFinish."
)
else
:
print
(
"OK!"
)
#執行結果:
buy bmw
buy audi
buy toyota
buy subaru
Finish
.
第6章:字典
字典 是一系列 鍵-值對 。可以使用鍵來訪問與之相關聯的值。與鍵相關聯的值可以是數字、字符串、列表乃至字典。 字典 用放在==花括號{}==中的一系列鍵-值對表示。
alien
=
{
'color'
:
'green'
,
'points'
:
5
}
favorite_languages
=
{
'jen'
:
'python'
,
'sarah'
:
'c'
,
'edward'
:
'ruby'
,
'phil'
:
'python'
,
}
1、刪除鍵-值對(刪除的鍵值對永久消失)
alien
=
{
'color'
:
'green'
,
'points'
:
5
}
del
alien
[
'point'
]
2、遍歷字典
-
遍歷所有的鍵-值對。
for key, value in favorite_languages.items():
-
遍歷字典中的所有鍵。
for name in favorite_languages.keys():
-
按順序遍歷字典中的所有鍵。
for name in sorted(favorite_languages.keys()):
-
遍歷字典中的所有值。
for language in favorite_languages.values():
。若要 剔除重復項,可使用集合(set) ,集合類似于列表,但每個元素必須是獨一無二的,for language in set(favorite_languages.values()):
3、嵌套
將一系列字典存儲在列表中,或將列表作為值存儲在字典中,甚至在字典中嵌套字典。
1)字典列表(在列表中存儲字典)
alien_0
=
{
'color'
:
'green'
,
'points'
:
5
}
alien_1
=
{
'color'
:
'yellow'
,
'points'
:
10
}
aliens
=
[
alien_0
,
alien_1
]
for
alien
in
aliens
:
print
(
alien
)
2)在字典中存儲列表
favorite_languages
=
{
'jen'
:
[
'python'
,
'ruby'
]
,
'sarah'
:
[
'c'
]
,
'edward'
:
[
'ruby'
,
'go'
]
,
'phil'
:
[
'python'
,
'haskell'
]
,
}
for
name
,
languages
in
favorite_languages
.
items
(
)
:
print
(
"\n"
+
name
.
title
(
)
+
"'s favorite languages are:"
)
for
language
in
languages
:
print
(
"\t"
+
language
.
title
(
)
)
3)在字典中存儲字典
在字典中嵌套字典,代碼會變得復雜。盡可能讓每位用戶的字典的結構都相同,這樣使嵌套的字典處理起來更容易。
users
=
{
'aeinstein'
:
{
'first'
:
'albert'
,
'last'
:
'einstein'
,
'location'
:
'princeton'
,
}
,
'mcurie'
:
{
'first'
:
'albert'
,
'last'
:
'einstein'
,
'location'
:
'princeton'
,
}
,
}
第7章:用戶輸入和while循環
1、函數input()
函數input()接受一個參數:即要向用戶顯示的提示或說明。
message = input("Tell me something:")
2、使用標志
active
=
True
while
active
:
message
=
input
(
"prompt"
)
if
message
==
'quit'
:
active
=
False
else
:
print
(
message
)
3、break和continue
break為結束循環,continue為結束當前循環進入下一次循環。
4、使用while循環來處理列表和字典
- 在列表之間移動元素。可使用 pop() 以每次一個的方式從列表刪除。
- 刪除包含特定值的所有列表元素。
while
'cat'
in
pets
:
pets
.
remove
(
'cat'
)
第8章:函數
1、實參和形參
def greet_user(username)
的定義中,username是一個形參——函數完成其工作所需的一項信息。在
greet_user('jesse')
的調用中,值
jesse
是一個實參,實參是調用函數時傳遞給函數的一項信息。將實參
jesse
傳遞給了函數greet_user(),這個值被存儲在形參username中。
2、關鍵字實參
關鍵字實參是傳遞給函數的
名稱-值對
。
def
describe_pet
(
animal_type
,
pet_name
)
:
#調用時,使用關鍵字實參時,務必準確地指定函數定義中的形參名
describe_pet
(
animal_type
=
'hamster'
,
pet_name
=
'harry'
)
3、默認值
編寫函數時,可給每個形參指定默認值。在調用函數中給形參提供了實參時,Python將使用指定的實參值;否則,將使用形參的默認值。
def
describe_pet
(
pet_name
,
animal_type
=
'dog'
)
#調用時,3種方式。
1
)
describe_pet
(
pet_name
=
'willie'
)
2
)
describe_pet
(
'willie'
)
3
)
describe_pet
(
pet_name
=
'harry'
,
animal_type
=
'hamster'
)
4
)
describe_pet
(
'harry'
,
'hamster'
)
4、傳遞任意數量的實參
python允許函數從調用語句中收集任意數量的實參。
將實參封裝到一個元組中。
def
make_pizza
(
*
toppings
)
:
print
(
toppings
)
make_pizza
(
'pepperoni'
)
#輸出: ('pepperoni',)
make_pizza
(
'pepperoni'
,
'green peppers'
,
'extra cheese'
)
#輸出: ('pepperoni', 'green peppers', 'extra cheese')
5、結合使用位置實參和任意數量實參
如果要讓函數接收不同類型的實參,必須在函數定義中將接納任意數量實參的形參放在最后。先匹配位置實參和關鍵字實參,再將余下的實參都收集到最后一個形參中。
def
make_pizza
(
size
,
*
toppings
)
:
#調用時
make_pizza
(
16
,
'pepperoni'
)
make_pizza
(
12
,
' mushrooms'
,
'green peppers'
,
'extra cheese'
)
6、將函數存儲在模塊中
在
pizza.py
中,
def make_pizza(size, *toppings):
在
making_pizzas.py
中,
import
pizza
pizza
.
make_pizza
(
16
,
'peppperoni'
)
7、導入特定的函數
-
from module_name import function_name
。例如,from pizza import make_pizza
-
通過用逗號分隔函數名,從模塊中導入任意數量的函數:
from module_name import function_0, function_1, function_2
8、使用as給函數指定別名
如果要導入的函數的名稱可能與程序中現有的名稱沖突,或者函數的名稱太長,可指定簡短而獨一無二的別名。
指定別名的通用語法如下:
from module_name import function_name as fn
例如給函數make_pizza()指定別名mp()。
from pizza import make_pizza() as mp
9、使用as給模塊指定別名
給模塊指定別名的通用語法如下:
import module_name as mn
例如給模塊pizza指定別名p。
import pizza as p
10、導入模塊中的所有函數
from module_name import *
第9章:類
1、創建類:
根據類來創建對象被稱為
實例化
。
#dog.py
class
Dog
(
)
:
def
__init__
(
self
,
name
,
age
)
:
self
.
name
=
name
self
.
age
=
age
def
sit
(
self
)
:
print
(
self
.
name
.
title
(
)
+
" is now sitting."
)
def
roll_over
(
self
)
:
print
(
self
.
name
.
title
+
" rolled over."
)
dog
=
Dog
(
'pitte'
,
16
)
print
(
dog
.
name
+
", "
+
str
(
dog
.
age
)
)
方法
__init__()
是一個特殊的方法。開頭和末尾各有兩個下劃線,這是一種約定,避免python默認方法與普通方法發生名稱沖突。
其中形參self必不可少,還必須位于其它形參的前面。
python調用這個__init__()方法來創建類實例時,將自動傳入實參self,每個與類相關聯的方法調用都自動傳遞實參self,它是一個指向實例本身的引用,讓實例能夠訪問類中的屬性和方法。
2、繼承
子類繼承父類的所有屬性和方法,同時還可以定義自己的屬性和方法。
class
Car
(
)
:
.
.
.
class
ElectricCar
(
Car
)
:
def
__init__
(
self
,
make
,
model
,
year
)
:
super
(
)
.
__init__
(
make
,
model
,
year
)
my_tesla
=
ElectricCar
(
'tesla'
,
'model s'
,
2016
)
創建子類時,父類必須包含在當前文件中,且位于子類前面。定義子類時,必須在括號內指定父類的名稱。方法__init__()接收Car實例所需的信息。
super()是一個特殊函數,幫助python將父類和子類關聯起來。
3、導入類
from car import Car
from car import Car, ElectricCar
import car
第10章:文件和異常
1、讀取整個文件
file_path
=
r
'C:\Users\lenovo\Desktop\filename.txt'
with
open
(
file_path
)
as
file_object
:
contents
=
file_object
.
read
(
)
print
(
contents
)
注:
在使用絕對路徑時,運行時可能會出現報錯,
SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: tr
,引起這個錯誤的原因就是轉義問題。
3種解決方法:
-
1)在路徑前面加r,即保持字符原始值的意思。
file_path = r'C:\Users\lenovo\Desktop\filename.txt'
-
2)替換為雙反斜杠。
file_path = 'C:\\Users\\lenovo\\Desktop\\filename.txt'
-
3)替換為正斜杠。
file_path = 'C:/Users/lenovo/Desktop/filename.txt'
2、逐行讀取
file_path
=
r
'C:\Users\lenovo\Desktop\filename.txt'
with
open
(
file_path
)
as
file_object
:
for
line
in
file_object
:
print
(
line
)
3、寫入空文件
file_path
=
r
'C:\Users\lenovo\Desktop\filename.txt'
with
open
(
file_path
,
'w'
)
as
file_object
:
file_object
.
write
(
"I love herbin."
)
調用open()時提供了兩個實參。第一個實參為要打開的文件的名稱,第二個實參(‘w’)指要以
寫入
模式打開這個文件。
(‘w’)模式打開文件后清空再寫入。
可使用
‘a’
將內容添加到文件末尾,而不是覆蓋文件原始內容。
只能將字符串寫入文本文件。若要將數據存儲到文本文件中,必須先使用函數str()將其轉換為字符串格式。
- 讀取模式(‘r’)
- 寫入模式(‘w’)
- 附加模式(‘a’)
- 讀取和寫入文件的模式(‘r+’)
4、異常
使用try-except代碼塊處理。
將可能引發異常的代碼放在try語句中。
1)使用try-except代碼塊
try
:
print
(
5
/
0
)
except
:
print
(
"error."
)
2)else代碼塊
try
:
answer
=
int
(
first_num
)
/
int
(
second_num
)
except
:
print
(
"error."
)
else
:
print
(
answer
)
可在except: 中加入pass,出現異常時什么都不做。
5、存儲數據
1)使用json.dump()和json.load()來存儲數字列表:
import
json
numbers
=
[
2
,
3
,
5
,
7
,
11
,
13
]
filename
=
'numbers.json'
with
open
(
filename
,
'w'
)
as
f_obj
:
json
.
dump
(
numbers
,
f_obj
)
使用json.load()將這個列表讀取到內存中:
with
open
(
filename
)
as
f_obj
:
numbers
=
json
.
load
(
f_obj
)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
