1. 程式人生 > 其它 >Python語言之語法基礎

Python語言之語法基礎

Python語言之語法基礎

前言

人生苦短,我用Python。

一、基本語法

註釋

  • Python中的單行註釋以#開頭!

  • 多行註釋可以使用三引號作為開頭和結束符號

行與縮排

python最具特色的就是使用縮排來表示程式碼塊
並不強制要求縮排4個空格,但要求縮排相同

if True:
	print ("True")
else:
	print ("False")
	print ("False")

語句換行

1.Python 通常是一行寫完一條語句,但如果語句很長,我們需要換行,這時可以使用圓括號來實現。

s=("Python是一種面向物件、解釋型計算機程式設計語言,"
        "由Guido van Rossum於1989年底發明。"
        "第一個公開發行版發行於1991年,"
        "原始碼同樣遵循 GPL(GNU General Public License)協議。")

2.對於字串或者字元型別,還可使用三引號來實現。

3.對於程式碼來說,可使用反斜槓\來實現。

注:反斜槓後不能用空格或者其他符號

a = 1
b = 2
c = a +\
b
# 等同於c = a + b
print(c)

4.需要注意的是,在 [](列表), {}(字典), 或 ()(元組) 中的語句,不需要使用圓括號進行換行。

total = ['item_one', 'item_two', 'item_three',
        'item_four', 'item_five']

二、變數和資料型別

Python中的變數用來儲存資料,變數可以理解為去超市購物的菜籃子,其型別和值在賦值的那一刻被初始化
注:變數不用宣告型別,直接賦值使用。

num1 = 100 
num2 = 87 
result = num1 + num2

變數型別:

  • 數字型別:整型、浮點、複數、布林型別
  • 布林型別
  • 字串型別
  • 列表型別
  • 元組型別
  • 字典型別
  • 集合

三、識別符號和關鍵字

識別符號

若希望在程式中表示一些事物,需要開發人員自定義一些符號和名稱,這些符號和名稱叫做識別符號。

  • 識別符號由字母、下劃線和數字組成,且數字不能開頭。
  • Python中的識別符號是區分大小寫的。
  • python中的識別符號不能使用關鍵字 。

注:關鍵字不能用作識別符號,在系統編譯時會引起歧義。

test = 1
test_1 = Test()
_test1 = 1

關鍵字

關鍵字指的是具有特殊功能的識別符號。

>>> help()               # 進入幫助系統
help> keywords       # 檢視所有的關鍵字列表
help> return             # 檢視return這個關鍵字的說明
help> quit                # 退出幫助系統

四、簡單數值型別

整型

整數型別(int)簡稱整型,它用於表示整數。

  • 二進位制:0b10100(以0b開頭,bin()轉換)
  • 八進位制: 0o10111(以0o開頭,oct()轉換)
  • 十進位制: 64(int()轉換)
  • 十六進位制: 0x14 (以0x開頭,hex()轉換)

浮點型

  • 浮點型(Float)用於表示實數。
  • 浮點型字面值可以用十進位制或科學計數法表示。

<實數>E或者e<整數>

E或e表示基是10,後面的整數表示指數,指數的正負使用+或-表示。

Python的浮點型遵循的是IEEE754雙精度標準,每個浮點數佔8個位元組,能表示的數的範圍是1.8e-308~1.8e+308 (64位)

布林型別

  • 布林型其實是整型的子型別。
  • 布林型資料只有兩個取值:True和False,分別對應整型的1和0。

以下物件的布林值都是False:

  • None、False(布林型)、0(整型0)、0x0(16進位制0)、0.0(浮點型0)、0.0+0.0j(複數0)
  • “ ”(空字串)、[ ](空列表)、( )(空元組)、{ }(空字典)

複數型別

複數型別,用於表示數學中的複數,例如,5+3j。

(1)複數由實數部分和虛數部分構成,表示為:real + imag j
(2)複數的實數real和虛數imag都是浮點型

數字型別轉換

檢視變數型別

使用type()函式

a = 10
print(type(a))
輸出:<class 'int'>

五、運算子

算術運算子

 +       加:兩個物件相加
 -       減:得到負數或一個數減去另一個數
 *       乘:兩個數相乘或是返回一個被重複若干次的字串
 /       除:x除以y
 %       取餘:返回除法的餘數
 **      冪:返回x的y次冪
 //      取整除:返回商的整數部分

賦值運算子

賦值運算子只有一個,即=,它的作用是把等號右邊的值賦給左邊。 例如,x=1

  • 為多個變數賦同一個值:x=y=z=1
  • 將多個值賦值給多個變數 a, b = 1, 2

複合賦值運算子

 +=     加法賦值運算子         c+=a等效於c=c+a 
 -=     減法賦值運算子         c-=a等效於c=c-a 
 *=     乘法賦值運算子         c*=a等效於c=c*a 
 /=     除法賦值運算子         c/=a等效於c=c/a 
 %=     取模賦值運算子         c%=a等效於c=c%a 
 **=    冪賦值運算子          c**=a等效於c=c**a 
 //=    取整除賦值運算子       c//=a等效於c=c//a

比較運算子

 ==       檢查兩個運算元的值是否相等
 !=       檢查兩個運算元的值是否不等
 >        檢查左運算元的值是否大於右運算元的值
 <        檢查左運算元的值是都小於右運算元的值
 >=       檢查左運算元的值是否大於或等於右運算元的值
 <=       檢查左運算元的值是否小於或等於右運算元的值

邏輯運算子

and 	x and y       布林“與”,如果x為False,x and y返回False,否則它返回y的計算值
or 	x or y        布林“或”,如果x為True,它返回True,否則返回y的計算值
not 	not x         布林“非”,如果x為True,返回False,如果x為False,它返回True

成員運算子

in         如果在指定的序列中找到值返回 True,否則返回 False。
           x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in     如果在指定的序列中沒有找到值返回 True,否則返回 False。
           x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

六、位運算

按位左移和按位右移

按位左移(<<)指的是二進位全部左移n位,高位丟棄,低位補0 。

按位右移(>>)指的是將二進位全部右移n位,移出的位丟棄,移進的位補符號位。按位右移的符號位保持不變。

按位與、按位或和按位異或

按位與指的是參與運算的兩個數各對應的二進位進行“與”的操作。只有對應的兩個二進位都是1時,結果位才為1,否則結果位為0.

1001
0011
0001

按位或指的是參與運算的兩個數各對應的二進位進行“或”的操作。只要對應的兩個二進位有一個為1時,結果位就為1

1000
0100
1100

按位異或就是將參與運算的兩個數對應的二進位制位進行比較,如果一個位為1,另一個位為0,則結果為就為1,否則,結果位為0。

1000
0100
1100

按位取反

  • 按位取反就是將二進位制的每一位進行取反;
  • 0取反為1,1取反為0
  • 但是,在計算機系統中,數值一律用補碼來表示和儲存

計算機中原碼補碼計算規則:

計算機儲存n位,左邊最高位為符號位,1為負,0為正;
所有數值在計算機中以補碼形式儲存
正數的原碼與補碼相同
負數的補碼為原碼按位取反再+1(符號位不變)
負數的原碼為補碼-1再按位取反
原碼補碼轉換過程中,符號位不變

按位取反計算方法:~x = -(x+1)

取反符號計算流程:
① 無論給的正數、負數,先求該數的原碼。(因為下一步的取反是對原碼取反)
② 對①得到原碼取反,包括符號位也取反(因為要執行取反運算子)
③ 對②得到的結果求補碼。(第②步得到取反後的值,要在計算機內以補碼儲存)
④ 把③的結果轉換為有正負號的十進位制值。

原始碼求補碼:
(1)如果原碼的符號位為“0”,表示是一個正數,所以補碼就是該數的原碼。
(2)如果原碼的符號位為“1”,表示是一個負數,求補碼的操作是:符號位為1,其餘各位取反,然後再整個數加1。

補碼求原碼:
(1)如果該補碼的符號位為“0”,表示是一個正數,所以原碼補碼是同一個。
(2)如果該補碼的符號位為“1”,表示是一個負數,求原碼的操作是:
方法1(求一次補碼即得到原碼):符號位為1,其餘各位取反,然後再整個數加1。
方法2(減1求反):符號位為1,整個數減1,再取反(符號位不取反)。

七、運算子優先順序

 **                             指數(最高優先順序)
 ~,+,-                          按位翻轉,一元加號和減號
                             (最後兩個的方法名為+@ 和 -@,例如:+5,-5 正5,負5)
 *,/,%,//                       乘,除,取模和取整數
 +,-                            二元加號和減號
 >>,<<                          右移,左移運算子
 &                              按位與
 |,^                            按位或,按位異或
 <=,>=,==,!=                    比較運算子
 =,%=,/=,//=,-=,+=,*=,**=       賦值運算子
 is,is not                      身份運算子
 in,not in                      成員運算子
 not,or,and                     邏輯運算子

輸入輸出

輸入

給變數賦值(結果為字串):

  • a = input()
  • print(type(a))

帶提示文字:

  • a = input('請輸入:')

輸出

直接輸出:

  • print('hello world')

格式化輸出:

  • print('{0} 和 {1}'.format('Google', 'Runoob'))
  • print('這個變數是%s' % 變數)

保留小數位數:

  • print('常量 PI 的值近似為 {0:.3f}。'.format(3.141592653))
  • print('這個浮點數是%.1f' % 3.14159) # 取1位小數

輸出引數:

  • a,b = 0,8
  • print(a,b)

f-string輸出

python3.6之後的版本引入了一種新的字串格式化方式:f-tring格式化字串。從%s格式化到format格式化再到f-string格式化,格式化的方式越來越直觀,f-string的效率也較前兩個高一些,使用起來也比前兩個簡單一些。

例:
a = 1
print(f'test print:{a}')
輸出:test print:1

結尾