第一部分 數據類型
這裏只是簡單介紹(針對零基礎學者),如果想要看基本數據類型詳細介紹,請點擊此處
如果要深一步瞭解組合數據類型,請點擊此處
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
-
儘量避免用中文和拼音做變量名
-
特殊的變量:常量(不變的量,如、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
- 再進一步 修飾性輸出
- 填充輸出
^ 居中對齊 < 向左對齊 >向右對齊
# ____3.1415926_____ 進行填充
print("{0:_^20}".format(PI))
#0表示位置爲0的變量,:表示要開始進行輸出,進行修飾了
#_表示用——進行填充,^表示居中對齊,20表示輸出的寬度是20
_____3.1415926______
print("{0:*<30}".format(PI))
3.1415926*********************
- 數字千分位分隔符
- 顯示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
- 浮點數簡化輸出
- 留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
- 整數的進制轉換輸出
- 十進制整數轉二進制、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 # 我是單行註釋
- 多行註釋
- 格式:""“註釋內容,可分行”""
"""
媽媽
我
好像
發現了
寫詩
的
訣竅
"""