Python知識整合(基礎)

本文章內容的python版本默認爲python3.x

1、註釋

註釋包括單行註釋,多行註釋,中文聲明註釋

1.1、單行註釋

註釋內容從#號到換行爲止結束
語法格式:

# 註釋內容

註釋格式:
第一種

#請輸入你的年齡
age=int(input("請輸入你的年齡"))

第二種

age=int(input("請輸入你的年齡"))        #請輸入你的年齡

1.2、多行註釋

在python中沒有一個單獨的多行註釋標記,而是將註釋內容包含在一對(’’’…’’’’)或者("""…""")
語法格式:

'''
註釋內容1
註釋內容2
......
'''

或者

"""
註釋內容1
註釋內容2
......
"""

當然可以利用單行註釋實現多行註釋,如

#註釋內容1
#註釋內容2
#....

1.3、中文編碼聲明註釋

在python編寫時,如果要指定字符編碼,那麼就需要在文件開頭加上中文編碼聲明註釋,來指定我們所需要的字符編碼類型的中文編碼,可以避免輸出亂碼
語法格式:

#-*- coding:編碼-*-

或者

#  coding=編碼

# coding=utf-8

值得注意的是,上面代碼中的-*-是爲了美觀才加上的,沒有任務特殊作用,故也可寫爲 # coding:編碼

2、代碼縮進

python中使用代碼縮進來區分代碼的層次感,這點與c等一些語言不一樣。

縮進可以使用空格鍵或者tap鍵,通常一個縮進量默認爲爲4個空格(可以修改),一個tap鍵爲4個空格,不過,建議使用空格進行縮進。

注意:python中對代碼縮進的要求非常嚴格,同一個級別的代碼塊的縮進量必須是相同的,否則將出現語法錯誤(SyntaxError)

3、代碼規範

3.1、編寫規則

pthon採用的是PEP8的編碼規範,PEP是python Enhancement Proposal的縮寫,8爲版本

使用import進行導入模塊時,注意,一次只導入一個模塊。
推薦寫法:

import os
import request

不推薦寫法:

import os , request

不要在行尾添加“;”,也不用將2條命令放在同一行,然後用“;”隔開。python中換行代表中一個語句的結束。

建議每行不超過80個字,如果超過用()連接,不推薦""
如,推薦

print("是多少級看過的力合股份客戶廣泛空間看過空間看過很快就卡。"
            "夫卡的風格看看吃飯大概開發地方")

不推薦

print("是多少級看過的力合股份客戶廣泛空間看過空間看過很快就卡。\
            "夫卡的風格看看吃飯大概開發地方")

特殊情況除外
1.導入模塊語句過長
2.註釋裏的URL

可以使用空行增加代碼的可讀性,如·在定義方法之間空一行等等。

3.2.命名規範

1、模塊名儘量短小,且全部小寫,可以使用下劃線,如

game_age

2、包名儘量短小,且全部小寫,不推薦使用下劃線,如

com.book

3、類名採用單詞首寫字母大即是Pascal風格。如

BorrowBook

4、內部模塊採用下劃線加Pascal風格命名,如

_BorrowBook

5、函數、類的屬性和方法的命令規則和模塊類似

6、常量命名時全部大寫,使用可以使用下劃線

注意:
使用單下劃線開頭的模塊變量或函數是受保護的,在使用import*from語句從模塊中不能導入。
使用雙下劃線開頭的實例變量或方法是類私有的。

4、基本的輸入與輸出

4.1、print()函數

print()基礎語法:

print("輸出內容")

注意print()語句輸出後會自動換行,如果要一次輸出多個內容,且不換行,可以用英文的半角逗號進行分開。如

print("a","b")

輸出結果爲a b

輸出時間

import datetime                          # 調用時間模塊datetime
d=datetime.datetime.now()
print(d)                                 # 輸出當前日期和時間
print(d.strftime('%Y-%m-%d %H:%M:%S'))   # 按格式輸出當前時間
print(d.strftime('%I:%M %p'))      

print()不僅僅可以輸出內容到屏幕還可以輸出到指定文件

fp = open(r'F:\my.txt','a+')    # 打開文件,如果沒有該文件將自動創建文件
print("hello world",file=fp)    # 輸出到文件中
fp.close()                      # 關閉文件

4.2、input()函數

作用:input()在python中可以用來接收用戶鍵盤輸入的內容

如:

b = input("輸入字符:")
print(b+"的ASCII碼爲",ord(b))

輸出結果爲:

輸入字符:b            # b爲我們輸入的字符
b的ASCII碼爲 98

例子:根據輸入的年份計算年齡

import datetime                                 # 調入時間模塊datetime
imyear = input("請輸入你的出生年份")   			# 輸入四位數的出生年份
nowyear = datetime.datetime.now().year          # 獲取當前的年份
age = int(nowyear) - int(imyear)                # 計算年齡
print("你的年齡爲"+str(age))

注意判斷一個變量的類型可以使用type()函數

例子:查單個字符的ACSII碼器

b = 12
while b>0:
    a = input("請輸入字符:")
    print(a + "的ASCII碼爲", +ord(a))

5、保留字與表示符

5.1、保留字

保留字就是被賦予特定意義的一些單詞,這些單詞不能被當作變量、函數、類、模塊和其他對象的名稱來使用(否則會報invalid syntax錯誤),python中保留字是區分大小寫的,

python中的保留字,這邊全部列出

and as assert break class
continue def del elif except
finally for from False global
if import in is lambda
nonlocal or pass raise return
try True while with yield

當然如果我們忘記了也不用緊,可以通過2行代碼查看保留字

import keyword
print(keyword.kwlist)

5.2、標識符

簡單說標識符就是一個名字,用來識別變量、函數、類、模塊和其他對象的名稱。

命名規則
1、由字母、下劃線和數字組成,並且第一個字母不能是數字。目前python中只允許使用ISO-Latin字符集中的字符A-Z和a~z.
2、不能使用Python中的保留字
例如,合法標識符

USSSS
name
name123
name_age

不合法標識符

4name             # 不能以數字開頭
if                # 不能以保留字當作標識符
$name			  #  不能使用特殊字符 空格、$、@、%等

3、區分字母大小寫

4、以下劃線開頭的標識符具有特殊意義,要避免使用類似的標識符

以單下劃線開頭的標識符表示不能直接訪問的類的屬性,也不能太過from xxx import *導入

以雙下劃線開頭的標識符表示類的私有成員

以雙下劃線開頭和結尾的標識符是python中專用的標識,如__int__()表示構造函數

5、儘量避免使用漢字作爲標識符,儘管這是被允許的。

6、變量

6.1、變量的命名規則與語法格式

變量的命名規則

1、變量名必須是一個有效的標識符

2、變量名不能使用python中的保留字

3、慎用小寫字母 l 和大寫字母O

4、應該選擇有意義的單詞作爲變量名

語法格式

變量名 = value     #變量賦值
如
name = 12         # 創建變量name並賦值爲12,類型爲int
name = "John"     # 創建變量name並賦值爲John,類型爲str

注意,python中允許多個變量指向同一個值,但是他們對於的內存地址是否相同呢同,我們可以是內置函數id()來查看

例如

a = 2014
b = 2014
print("a的地址爲",+id(a))
print("b的地址爲",+id(b))

輸出

a的地址爲 2316677533424
b的地址爲 2316677533424

7、基本數據類型

7.1、數字類型

1、整數
整數包括,十進制、八進制、十六進制

十進制不能以0開頭

八進制在python3.x中必須以0o或0O開頭,python2.x可以以0開頭

十六進制必須以0x或0X開頭

2、浮點數
浮點數表現形式,如2.7e2(科學計數法),1.1414

值得注意的是在使用浮點數進行計算時,可能會出現小數位數不確定的情況,如

a = 0.2
b = 0.1
c= a + b
print(c)

我們覺得輸出0.3,但是實際輸出0.30000000000000004,
所有語言都有這個問題,可以忽略對於的小數位

3、複數
在python中複數與數學中的複數在形式上完全一樣

7.2、字符串類型

在python中字符串屬於不可變序列
通常用單引號,雙引號,三引號括起來。其中三引號內的字符序列可以分佈在連續的多行中,而單引號,雙引號內的字符序列必須在一行中。

注意如果需要表示複雜的字符串時可以進行引號的嵌套
如;

print(''''___' "_"***''')

輸出

'___' "_"***

python中的字符串還支持轉義字符
常見的轉義字符如下表

\ 續行符
\n 換行符
\r 回車符
\0
\t 水平製表,用於橫向跳到下一製表位
\ " 雙引號
\ ’ 單引號
\ 一個反斜槓
\f 換頁
\0dd 八進制數,dd表示字符,如\012代表換行
\xhh 十六進制,hh表示字符,如\x0a代表換行

注意在字符串定界符引號的前面加上R或r,將無視轉義字符的存在。

print(r"hello\nworld")
print("hello\nworld")

輸出

hello\nworld
hello
world

7.3、布爾類型

標識符True和False爲布爾類型
True表示1,False表示0

注意布爾類型可以進行運算但是不建議進行運算

在python中所有對象都可以進行真假測試,只有以下幾種情況爲假其他都爲真。
1、False或None

2、數值中的零,包括0、0.0、序數0

3、空序列,包括字符串,空元組、空列表、空字典

4、自定義對象的實例,對象的__bool__方法返回False或者__len__方法返回0.

7.4、數據類型轉換

python是動態類型語言(也就是弱類型語言),不需要先聲明變量類型,但在對變量進行操作時可能用到類型轉換。

常用的類型轉換函數

函數 作用
int(x) 將x轉爲整型
float(x) 將x轉爲浮點型
complex(real[,imag]) 創建一個複數
str(x) 將x轉爲字符串
repr(x) 將x轉爲表達式字符型
eval(str) 計算在字符串中的有效的python表達式,並返回一個對象
chr(x) 將整數x轉爲字符
ord(x) 將一個字符返回其所對應的整數值
hex(x) 將一個整數轉化爲一個16進制字符串
oct(x) 將一個整數轉化爲一個8進制字符串

8、運算符

8.1、算術運算符

加(+)、減(-)、乘(*)、除(/)、取餘數(%)、取整除(//)、冪(**)

注意
1、在%中如果除數(第二個操作數)是負數,那麼得到的結果也是負數

2、使用/或//時,除數不能爲0,不然會出現錯誤

3、在python2.x中/符號計算的結果爲整數,而在python3.x中爲浮點數,如
3/2,在python2.x中爲1,在在python3.x中爲1.5

8.2、賦值運算符

常見的賦值運算符有=、+=、-=、*=、/=、%=、**=、//=等
在使用時,就是把=號右邊的值賦值給左邊的變量,也可以進行某些運算後再賦值給左邊的變量。
如x-=y,就是等於x=x-y,
例子如下

x = 1
y = 2
x -= y
print(x)

輸出x=-1

8.3、比較(關係運算符)

對表達式或者變量的結果進行大小、真假等比較,如果比較結果爲真返回True,否則爲False

比較運算符有:

 >、 < 、==、!=、>=、<=

如果要判斷一個變量是否在一個範圍內可以使用 “ 值1<變量a<值2 ”

8.4、邏輯運算符

主要包括 and(邏輯與) or(邏輯或) not(邏輯非)
and和or 的結合方向是從左到右
not的不一樣是從右到左

8.5、位運算符

位運算符是對二進制進行計算的,所以需要把要執行的數據轉化爲二進制數,然後再進行位操作。
python中位運算符有位與(&)、位或(|)、位異或(^)、位取反(~)、位左移(<<)、位右移(>>),

位運算符名稱 算法
位與(&) 2個二進制數的對位都爲1時才爲1,否則爲0 ,若2個操作數精度不同,則結果的精度與精度高的操作數相同
位或 2個二進制數的對位都爲0時才爲0,否則爲1,若2個操作數精度不同,則結果的精度與精度高的操作數相同
位異或(^) 2個二進制數的對位相同時才爲0,否則爲1 ,若2個操作數精度不同,則結果的精度與精度高的操作數相同
位取反(~) 操作數中的1改爲0,0改爲1
位左移(<<) 將一個二進制操作數左移指定的位數,左邊(高位段)溢出的位丟低,右邊(低位段)的空位用0補充,位左移運算相當於乘以2的n次冪
右移(>>) 將一個二進制操作數右移指定的位數,右邊(低位段)溢出的位用丟低,而在左邊(高位段)的空位補充時,如果最高位爲0,則在左側補0,否則補1。位右移運算相當於除以2的n次冪

注意:
由於移位運算符運算速度很快,所有在程序中遇到表達式乘以或除以2的n次冪時可以用移位運算符來代替

8.6、運算符的優先級

python中運算符的運算規則是,優先級高的先執行,低的後執行,同一級的按從左往右進行操作。當然如果有括號,括號內的運算最先執行。在編寫程序時儘量使用括號()來限定運算次序,以免運算次序出錯
運算符的優先級(從高到低)

類型
**
~、+、-
*、/、%、//
+、-
<<、>>
^
位或
<、<=、>>、=!、=、==(比較運算符)

9、流程控制語句

9.1、選擇語句

1、最簡單的if語句
語法結構如下:

if 表達式:
	語句塊

注意在python中,當表達式的值爲非零或者非空的字符串時。if語句也認爲是條件成立(爲真值)
2、if…else語句
語法結構如下:

if 表達式:
	語句塊1
else:
	語句塊2

技巧:
if…else語句可以使用條件語句進行簡化,如

a = 1
if a > 0:
    b =a
else:
    b = -a
print(b)

可以簡化爲(就是使用條件表達式)

a = 1
b = a if a > 0 else -a
print(b)

3、if…elif…else語句
語法結構

if  表達式1:
	語句塊1
elif 表達式2:
    語句塊2
elif 表達式3:
    語句塊3
...
else:
    語句塊n

注意:if與elif都需要進行判斷真假,而else不需要判斷;else和elif都需要與if一起使用,不能單獨使用

4、if語句的嵌套
if選擇語句可以有多種嵌套方式,根據需要靈活運用。

if 表達式1:
	if 表達式2:
		語句塊1
	else:
		語句塊2

9.2、循環語句

循環體就是一組被重複執行的語句。
1、whie循環
while循環結構

while 條件表達式:
	循環體

值得注意的是Python不支持do〜while語法、while(無限循環)和break組合起來替換 do ~ while

n = 0
while True:         #無限循環...     
      print n
      n += 1
      if n == 10:
      	   break     #結束循環    

2、for循環
for循環結構

for 迭代變量 in 對象:
	循環體

如:

print("技術1+2+3+...+100結果爲:")
result = 0
for i in range(101):
    result += i
print(result)

range()這個函數進行簡單的說明

range(start,end,step)

start爲計數的起始值,可以省略,省略就從0開始

end爲計數的結束值,但是不包括該值,如range(5),會輸出0,1,2,3,4,不可省略

step爲計數的步長,就是2個參數之間的間隔,可以省略,省略就默認爲1

小技巧
在python3.x中,如果讓print語句輸出的內容在一行上可以使用下面這個語句

print(result,end=' 分隔符 ')

for語句不僅可以循環數值,還可以逐個遍歷字符串。

當然可以進行循環嵌套

9.3、跳轉語句和pass空語句

1.break語句
break語句通常會結合if語句使用,在某種條件下跳出循環。如果是嵌套循環,那麼break語句將跳出最內層的循環

如while語句中使用break語句

while 條件表達式1:
	執行代碼
	if 條件表達式2:
		break

for語句中使用break語句

for 迭代變量 in 變量
	if 條件表達式:
		break

2.continue語句
break語句通常會結合if語句使用,在某種條件下跳出當次循環,進行下一次循環。如果是嵌套循環,那麼break語句將跳出最內層的當次循環

如while語句中使用break語句

while 條件表達式1:
	執行代碼
	if 條件表達式2:
		continue

for語句中使用break語句

for 迭代變量 in 變量
	if 條件表達式:
		continue

3、pass空語句
不做任何事,一般起到佔位作用,爲得是方便以後進行處理

 for 迭代變量 in 變量
    	if 條件表達式:
    		語句塊
    	else:
    		pass

10、數字運算類內置函數

函數名 作用
abs(x) 求絕對值,參數可以是整數,也可以是複數,複數就輸出複數的模
oct(x) 將一個數字轉爲8進制字符串
hex(x) 將一個數字轉爲16進制字符串
chr(x) 返回整數x對應的ASCII的字符
ord(x) 返回x對應的ASCII的值
complex([real[,image]]) 創建一個複數
divmod(a,b) 分別取商和餘數,整數和浮點數都可以
float(x) 將x轉化爲浮點數,如果沒有參數返回0.0
int([x[,base]]) 將x轉化爲int型,base爲進制
long([x[,base]]) 將x轉化爲long型,base爲進制
pow(x,y[,z]) 返回x的y次冪
range(strat,stop[,step]) 產生一個序列,默認從零開始
round(x[,n]) 四舍五如=入
sum(iterable[,start]) 對集合求和
bin(x) 將整數x轉化爲二進制字符串
bool([x]) 將x轉化爲布爾類型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章