深度之眼 - Python學習筆記——第二章:Python基本語法元素

第一部分 數據類型

這裏只是簡單介紹(針對零基礎學者),如果想要看基本數據類型詳細介紹,請點擊此處
如果要深一步瞭解組合數據類型,請點擊此處

1. 基本類型:數字、字符串、布爾

1.1 數字類型

  • int 整型   整數
2
  • float 浮點型   帶小數的數
2.0
  • complex 複數   a+bj
3+4j

1.2 字符串類型

點擊此處進一步學習基本數據類型

  • str 字符串   視作文本
  • 組成: 由數字、字母、空格、其他字符等組合而成
  • 表達: 用" " 或’ ’
"python 123 @#$^&(())"
'python 123 @#$^&(())'

1.3 布爾類型

點擊此處進一步學習基本數據類型

  • bool 布爾類型
  • 主要用於邏輯運算
y = 2 < 1
print(y)
False

上述類型均可定義單個數據,如果我們有一組數據,該如何表示?

2. 組合類型:列表、元組、字典、集合

請點擊此處,深一步瞭解組合數據類型

2.1 列表

  • list 列表    序列類型:  數據有位置順序
  • 表示方式:  [data1,data2…]
a = [1, 2, 3, 4, 5]

請點擊此處,深一步瞭解組合數據類型

2.2 元組

  • tuple 元組    序列類型
  • 表示方式: (data1,data2…)
  • 元素不支持修改——“不可變的列表”
b = (1, 2, 3, 4, 5)

請點擊此處,深一步瞭解組合數據類型

2.3 字典

  • dict 字典  映射類型: 通過“鍵”-“值”的映射實現數據存儲和查找
  • 表示方式: {key1:value1 , key2:value2 , …}
student = {201901: "小明", 201902: "小紅", 201903: "小強"}
print(student[201901])
'小明'

2.4 集合

  • set 集合  一系列互不相等元素的集合,無序的
  • 表示方式: {data1,data2…}
s = {"小明", "小紅", "小強", "小明", "小強"}
print(s)
{'小強', '小明', '小紅'}

在程序中,我們如何來引用這些數據?

  • 非常通俗的處理辦法:賦值給一個變量

第二部分 變量

1. 變量的概念

  • “量”   實實在在的對象:如數據、抽象
  • “變”   可變性:增、刪、查、改等
  • 變量定義二要素:  變量名、賦值
x = 1

2. 變量的命名

2.1 哪些可以用來做變量名?

  • 大寫字母、小寫字母、數字、下劃線、漢字及其組合。
  • 嚴格區分大小寫
Python_is_第1= True
python_is_第1= False

2.2 哪些情況不被允許?

  • 首字符不允許爲數字
1_fruit = "apple"
  File "<ipython-input-59-e3b1d93d01a0>", line 1
    1_fruit = "apple"
     ^
SyntaxError: invalid token
  • 變量名中間不能有空格
my fruit = "apple"
  File "<ipython-input-60-36327c3a601f>", line 1
    my fruit = "apple"
           ^
SyntaxError: invalid syntax
  • 不能與33個Pyhton保留字相同
if = True
  File "<ipython-input-62-4c75bcfb9bb9>", line 1
    if = True
       ^
SyntaxError: invalid syntax

2.3 變量名定義技巧

  • 變量名儘可能有實際意義,表徵數據的某種特性
a = [17, 18, 19]
age_of_students = [17, 18, 19]
  • 下劃線(推薦:變量和函數名)
    變量名由多個單詞組成:用_連接多個單詞

  • 駝峯體(推薦:類名) 變量名由多個單詞組成:單詞首字母大寫

AgeOfStudents
  • 儘量避免用中文和拼音做變量名

  • 特殊的變量:常量(不變的量,如π\pi、e)   變量名所有字母均爲大寫

MAX_ITERATION = 1000

3. 變量的賦值

3.1 一般賦值

  • 通過等號自右向左進行賦值
x = 1+2

3.2 增量賦值

x = 10
x = x+10
x += 10

3.3 打包賦值

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

第三部分 控制流程

1. 順序流程

  • 自上向下依次執行

【小例子】實現1到5的整數求和

# res = 1+2+3+4+5 
res = 0    # 賦初值
res += 1
res += 2
res += 3
res += 4
res += 5
print(res)     # 顯示結果
15

2. 循環流程——遍歷循環(for)

主要形式:

  • for 元素 in 可迭代對象:
      執行語句

執行過程:

  • 從可迭代對象中,依次取出每一個元素,並進行相應的操作

【小例子】實現1到5的整數求和

res = 0
for i in [1,2,3,4,5]:    # 每次迭代,取出一個i
    res += i               # 對每次迭代取出的i 進行相應操作   
res                      # 遍歷結束後,執行後續語句
15

3. 循環流程——無限循環(while)

主要形式:

  • while 判斷條件:
  •   條件爲真,執行語句
  • 條件爲假,while 循環結束

【小例子】實現1到5的整數求和

i = 1
res = 0
while i <= 5:   # 若i不大於5,則循環繼續
    res += i
    i += 1
print(res)           # 若循環條件不成立,循環停止,執行後續語句
15

4. 分支流程(if)

最簡單的形式:

  • if 判斷條件:
  •   條件爲真,執行語句
  • else:
  •   條件爲假,執行語句
age = 18
if age > 22:
    print("可以結婚啦")
else:
    print("em,着急了點,再等等。。。")
em,着急了點,再等等。。。
  • 有了數據和變量,以及控制流程這些個中間過程後
  • 我們回過頭來考慮下程序的輸入和輸出

第四部分 輸入輸出

1. 數據從哪裏來?

1. 外部文件導入

  • 從本地硬盤、網絡端讀入等
  • 該部分內容放在 第八章《文件、異常和模塊》進行講解

2. 程序中定義

age = 18
name = "Tom"

3. 動態交互輸入 input

  • 在程序運行的過程中進行輸入
x = input("請輸入一個數字:")
print(x)
y = input("請輸入一個數字:")
請輸入一個數字:3.5
'3.5'

請輸入一個數字:10
'10'
print(x + y)
'3.510' #要注意這裏輸出的不是3.5+10=13.5,而是兩個字符串的拼接
print(type(x))
str
  • eval() 去掉引號
x = eval(input("請輸入一個數字:"))
print(x)
請輸入一個數字:4

4
y = eval(input("請輸入一個數字:"))
y
請輸入一個數字:3.5

3.5
print(x + y)
7.5

2. 數據到哪裏去?

1. 存儲到本地硬盤或網絡端

  • 該部分內容放在 第八章《文件、異常和模塊》進行講解

2. 打印輸出 print

  • 直接打印數據
print("我是一顆小星星")
我是一顆小星星
print(1234)
1234
  • 打印變量
x = 1024
print(x)
1024
  • print 默認換行
print(1)
print(2)
1
2
  • 如果不想換行怎麼辦?
  • 換行控制 end=
print(123,end=" ")
print(456)
123 456
  • 有時候,我們需要一些複雜的輸出:比如幾個變量一起組合輸出
PI = 3.1415926
E = 2.71828
print("PI = ", PI, "E = ", E)
PI =  3.1415926 E =  2.71828

3. 格式化輸出方法 format

  • 基本格式:“字符{ 0 }字符{ 1 }字符”.format(v0,v1)
print("PI = {0},E = {1}".format(PI, E))
PI = 3.1415926,E = 2.71828
print("PI = {1},E = {0}".format(PI, E))
PI = 2.71828,E = 3.1415926
print("PI = {},E = {}".format(PI, E)) 
PI = 3.1415926,E = 2.71828
print("PI = {0},E = {0}".format(PI, E))
PI = 3.1415926,E = 3.1415926
  • 再進一步 修飾性輸出
  1. 填充輸出
    ^ 居中對齊 < 向左對齊 >向右對齊
# ____3.1415926_____  進行填充
print("{0:_^20}".format(PI))
#0表示位置爲0的變量,:表示要開始進行輸出,進行修飾了
#_表示用——進行填充,^表示居中對齊,20表示輸出的寬度是20
_____3.1415926______
print("{0:*<30}".format(PI))
3.1415926*********************
  1. 數字千分位分隔符
  • 顯示1,000,000
print("{0:,}".format(10000000))
10,000,000
print("{0:&>20,}".format(10000000))
# 如果既要填充又要放千分位分隔符,那麼一定先填充再放分隔符!
&&&&&&&&&&10,000,000
print("{0:,&>20}".format(10000000)) #如果先放分隔符再填充就會報錯
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-35-9f30412a92d9> in <module>
----> 1 print("{0:,&>20}".format(10000000))


ValueError: Invalid format specifier
  1. 浮點數簡化輸出
  • 留2位小數
print("{0:.2f}".format(PI))
#:表示開始修飾,2表示保留2位小數,f表示這是個浮點數
3.14
  • 按百分數輸出
print("{0:.1%}".format(0.818727))
#保留一位小數的百分數
81.9%
  • 科學計數法輸出
print("{0:.2e}".format(0.818727))
8.19e-01
  1. 整數的進制轉換輸出
  • 十進制整數轉二進制、unicode碼、十進制、八進制、十六進制輸出
"二進制{0:b},Unicode碼{0:c},十進制{0:d},八進制{0:o},十六進制{0:x}".format(450)
'二進制111000010,Unicode碼ǂ,十進制450,八進制702,十六進制1c2'

第五部分 程序格式

1. 行最大長度

所有行限制的最大字符數爲79

2. 縮進

  • 用縮進來表示語句間的邏輯
  • 在 for while if def class等 之後下一行開始進行縮進,表明後續代碼與前句之間的從屬關係
  • 縮進量:4字符

3. 使用空格

  • 二元運算符兩邊加一個空格
x = 2       # 賦值
x + = 4     # 增量
6 > 2       # 比較
  • 使用不同優先級的運算符,考慮在最低優先級的運算符周圍添加空格
x = x*2 - 1
z = x*x + y*y
c = (a+b) * (a-b)
  • 在逗號後使用空格
x, y = 1, 2
ls = [1, 2, 3]
  • 不要使用一個以上的空格
x     = 2        # 空格一個就夠了,不應過多

4. 避免使用空格

  • 在制定關鍵字參數或者默認參數值的時候,不要在=附近加上空格
def fun(n=1, m=2):
    print(n, m)

小結

1、以上屬於PEP8格式指南的部分內容,養成良好的編碼規範利人利己

2、格式約定的目的:

  • 使大量Python代碼風格一致
  • 提升代碼可讀性

3、盡信書不如無書,不應死板教條的執行格式規範

  • 項目規範優先

5. 註釋

  • 單行註釋
  • 格式:# 註釋內容
a=1  # 我是單行註釋
  • 多行註釋
  • 格式:""“註釋內容,可分行”""
"""
媽媽
我
好像
發現了
寫詩
的
訣竅
"""
發佈了24 篇原創文章 · 獲贊 32 · 訪問量 1482
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章