第一個 python 代碼
# 輸出 打印
print("hello world")
python代碼 是從上往下 一行一行執行 一旦報錯 就會停止
一、常量
“常量”的廣義概念是:‘不變化的量’,在計算機程序運行時,不會被程序修改的量,約定俗成 不可更改 ,一般 全部是大寫字母。
如:a 、 15 、 G
二、變量
變量就是一些將來可能會改變的數據,程序運行時,這些數據將會被保存在計算機的內存里面,程序運行中所需要的各種各樣的數據會以變量的形式保存起來。
由數字 字母 下划線任意組合,且不能以數字開頭
用等於號 “ = ” 賦值,左邊是變量名 ,右邊是變量值
變量名 = 值
不能用python中的關鍵字,Python 的標准庫提供了一個 keyword 模塊,可以輸出當前版本的所有關鍵字
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else',
'except','finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or',
'pass', 'raise','return', 'try', 'while', 'with', 'yield']
# 定義一個變量名為i 把5.8 賦值給 變量i
i = 5.8
print(i)
# 把i得值改為了 3.9
i = 3.9
print(i)
注釋
在程序中對某些代碼進行標注說明,增強程序的可讀性
python 注釋有以下兩類:
單行注釋:以 # 開始
多行注釋:用 一對 連續的 三個 引號(單引號和雙引號都可以)
# 這是一單行注釋
'''
這是一個
多行注釋
'''
"""
這也是一個
多行注釋
"""
什么時候需要使用注釋?
1.注釋不是越多越好,對於一目了然的代碼,不需要添加注釋
2.對於 復雜的操作,應該在操作開始前寫上若干行注釋
3.對於 不是一目了然的代碼,應在其行尾添加注釋(為了提高可讀性,注釋應該至少離開代碼 2 個空格)
4.絕不要描述代碼,假設閱讀代碼的人比你更懂 Python,他只是不知道你的代碼要做什么
任何語言的程序員,編寫出符合規范的代碼,是開始程序生涯的第一步
數據類型
Python3 中有六個標准的數據類型:
Number(數字)
String(字符串)
List(列表)
Tuple(元組)
Set(集合)
Dictionary(字典)
Python3 的六個標准數據類型中:
不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組)
可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)
三、 數字(Number)
python 數字類型不改改變
整數:int 通常被稱為是整型或整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的,可以當作 Long 類型使用,布爾(bool)是整型的子類型。
# 例如: 1 、-258 、 36900 等等
浮點數:float 浮點型由整數部分與小數部分組成
# 例如:3.25 、 0.35
復數:complex 復數由實數部分和虛數部分構成
3.1、算術運算符
| 運算符 | 作用 |
|---|---|
| + | 加 |
| - | 減 |
| * | 乘 |
| / | 除 |
| % | 取余 |
| // | 取整 只取相除后得整數 |
| ** | 冪 次方 |
題:
- 6 模 上7等於多少
- 45除8 取整等於多少
- 8 模上 5 的結果 的 5次方等與多少?
3.2、賦值運算符
| 運算符 | 描述 | 實例 |
|---|---|---|
| = | 就是賦值,把右邊的結果值給到左邊 | a=1 、b = 2+3 |
| += | 加法賦值:把左邊加上右邊,結果在給左邊 | a +=2 就等於 a = a + 2 |
| -= | 減法賦值:把左邊減去右邊,結果在給左邊 | a -= 3 等於 a = a-3 |
| *= | 乘法賦值:把左邊乘於右邊,結果在給左邊 | a *=2 等於 a = a * 2 |
| /= | 除法賦值:把左邊除於右邊,結果在給左邊 | a /= 5 等於 a = a / 5 |
| //= | 取整除賦值:把左邊除於右邊的商給到 左邊 | a // 6 等於 a = a // 6 |
| %= | 取模賦值:把左邊除於右邊的余數給到 左邊 | a %= 7 等於 a = a % 6 |
| **= | 冪賦值:把左邊冪右邊 的結果 給到左邊 | a **= 7 等於 a = a ** 7 |
3.3、邏輯運算符
| 運算符 | 描述 | 實例 |
|---|---|---|
| and | 且、與: 兩邊全部為真,才是真 | True and False = Fales |
| or | 或: 只要有一邊成立,則成立 | True or False = True |
| not | 非 取反 | not False = True |
3.4 成員運算符
| 運算符 | 描述 | 實例 |
|---|---|---|
| in | 在一個序列里面是否包含指定元素 | "python" in ["java","c","c#","php","python"] |
| not in | 在一個序列里面不包含指定元素 | "Nodejs" not in ["java","c","c#","php","python"] |
優先級
和數學中的運算符的優先級一致,在 Python 中進行數學計算時,同樣也是:
先乘除后加減
同級運算符是 從左至右 計算
可以使用 () 調整計算的優先級
冪 (最高優先級) > 乘、除、取余數、取整除 > 加法、減法
數據轉換
# 浮點數 轉 int 會有精度損失
i = 2.3
print(int(i))
>>> 2
python 也提供 進制之間 相互轉換
十進制轉 二進制 bin()
print(bin(5))
>>> 0b101
二進制轉十進制 int('二進制數',2)
print(int('110',2))
>>> 6
3.5、布爾類型
True :真 也是int類型 1
False:假 也是int類型 0
注意:Python3 中,bool 是 int 的子類,True 和 False 可以和數字相加 True== 1,False==0 是會返回 Ture,但可以通過 is 來判斷類型。
練習:
bu = (a and b or c) and d or e
# c =False, a 和b 其中有一個False, d 是True, e 也是True
# 問bu 結果是什么
四、 字符串(str)
4.1、字符串格式
python 字符串 單引號 或 雙引號
'內容'
"內容"
4.2、常用得轉義符:
\ :可以作為續行符,也可以反義
\n :換行
注:若想輸出整個原始字符串 可以在字符串前面加r
print(r"hello \n 你好")
>>> hello \n 你好
字符串相加 + 結果是拼接
print("hello"+"world")
>>> helloworld
4.3、格式化輸出
st1 = '我叫{},喜歡{}'.format('小明','打球')
print(st1)
>>> 我叫小明,喜歡打球
# 還有另一種 %s
st2 = "我叫%s,喜歡%s" %("劉備","江山")
print(st2)
>>> 我叫劉備,喜歡江山
4.4、字符串常用方法
轉換類方法
| 方法 | 作用 |
|---|---|
| capitalize() | 將字符串的第一個字符轉換為大寫 |
| center() | 返回一個原字符串居中,並使用空格填充至長度 width 的新字符串 |
| encode() | 指定的編碼格式編碼字符串 |
| join() | 用於將序列中的元素以指定的字符連接生成一個新的字符串 |
| len() | 返回對象(字符、列表、元組等)長度或項目個數 |
| ljust(width[, fillchar]) | 返回一個原字符串左對齊,並使用空格填充至指定長度的新字符串 |
| rjust(width[, fillchar]) | 返回一個原字符串右對齊,並使用空格填充至長度 width 的新字符串 |
| lower() | 轉換字符串中所有大寫字符為小寫 |
| upper() | 將字符串中的小寫字母轉為大寫字母 |
| lstrip() | 截掉字符串左邊的空格或指定字符 |
| strip() | 用於移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。 |
| split() | 通過指定分隔符對字符串進行切片 |
| replace() | 方法把字符串中的 old(舊字符串) 替換成 new(新字符串)如果指定第三個參數max,則替換不超過 max 次 |
| splitlines() | 按照行('\r', '\r\n', \n')分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。 |
| swapcase() | 用於對字符串的大小寫字母進行轉換 |
| zfill() | 返回指定長度的字符串,原字符串右對齊,前面填充0 |
查詢類方法
| 方法名 | 作用 |
|---|---|
| count() | 用於統計字符串里某個字符出現的次數 |
| find() | 檢測字符串中是否包含子字符串 str,如果找不到返回-1 |
| rfind() | 返回字符串最后一次出現的位置,如果沒有匹配項則返回-1 |
| index() | 檢測字符串中是否包含子字符串 str該方法與 find()方法一樣,只不過如果str不在 string中會報一個異常 |
| rindex() | 返回子字符串 str 在字符串中最后出現的位置,如果沒有匹配的字符串會報異常 |
驗證類方法
| 方法名 | 作用 |
|---|---|
| startswith() | 用於檢查字符串是否是以指定子字符串開頭 |
| endswith() | 用於判斷字符串是否以指定后綴結尾 |
| isalnum() | 檢測字符串是否由字母和數字組成 |
| isalpha() | 檢測字符串是否只由字母或文字組成 |
| isdigit() | 檢測字符串是否只由數字組成,如果字符串只包含數字則返回 True 否則返回 False |
| isnumeric() | 檢測字符串是否只由數字組成,如果字符串中只包含數字字符,則返回 True,否則返回 False |
| isspace() | 檢測字符串是否只由空白字符組成 |
| isdecimal() | 檢查字符串是否只包含十進制字符 |
| istitle() | 檢測字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫 |
| isupper() | 檢測字符串中所有的字母是否都為大寫 |
| islower() | 檢測字符串是否由小寫字母組成。 |
字符串還有很多其他操作詳見:
https://www.cnblogs.com/niunai/p/10147621.html
https://www.runoob.com/python3/python3-string.html
http://c.biancheng.net/python/str_method/
五、 列表(list)
在程序運行中,我們需要把數據暫時存儲在一個容器里,我們知道 變量是可以存儲數據,但是變量 只能存儲單個數據,當你想存儲多個數據 怎么辦?
python 列表就可以存放各種數據類型 且是有序的集合 可以添加或刪除元素,里面的每一個元素用英文 逗號 , 隔開,
用英文中括號 表示 []
# 定義一個數組 存儲兩個元素: 1,煙花 指向一個變量
li = [1,"煙花"]
print(li)
>>> [1, '煙花'] # 會把整個數組內容顯示出來
5.1、列表添加元素
# 定義空的列表,添加 元素 台風煙花要來了
ls = []
print(ls)
# 添加 元素 台風煙花要來了
ls.append("台風煙花要來了")
print(ls)
# 追加 :數字 666
ls.append(666)
print(ls)
>>> []
>>> ['台風煙花要來了']
>>> ['台風煙花要來了', 666]
5.2、索引
列表中的每個值都有對應的位置值,稱之為索引,第一個索引是 0,第二個索引是 1,依此類推
5.3、查看元素
# 定義一個有值的列表,如下
lis = ['茅台','伊利','同仁堂','海天','雲南白葯','片仔癀','中新葯業']
# 獲取第一個元素值
print(lis[0])
# 獲取 第二個到第五個之間的元素 ,可以看到列表區間取值包頭不包尾
print(lis[1:5])
>>> 茅台
>>> ['伊利', '同仁堂', '海天', '雲南白葯']
5.4、更新元素
# 更新元素 列表 還如下
li1 = ['茅台','伊利','同仁堂','海天','雲南白葯','片仔癀','中新葯業']
# 把第二個元素 更新為 煙花,
li1[1] = "煙花"
print(li1[1])
>>> 煙花
5.5、刪除元素
# 刪除元素 可以使用 del 來刪除元素
li2 =['茅台','伊利','片仔癀','同仁堂']
# 刪除 茅台
del li2[0]
print(li2)
# >>> ['伊利', '片仔癀', '同仁堂']
# 也可以使用 pop方法 在方法里傳入你要刪除的索引值 ,如果不傳默認刪除末尾的元素
li2.pop(1)
print(li2)
# >>> ['伊利', '同仁堂']
5.6、列表拼接 、嵌套
# 定義兩個 列表
li3 = ['茅台','片仔癀']
li4 = ['伊利','同仁堂']
# 相加 賦值給 變量li5
li5=li3+li4
print(li5)
# 定義列表li6 包裹 li3和li4
li6 = [li3,li4]
print(li6)
>>> ['茅台', '片仔癀', '伊利', '同仁堂']
>>> [['茅台', '片仔癀'], ['伊利', '同仁堂']]
5.7、列表常見操作方法
| 方法 | 作用 |
|---|---|
| len(list) | 統計列表元素個數 |
| max(list) | 求列表里的最大值 |
| min(list) | 求列表里的最小值 |
| list.count(obj) | 統計該元素在列表出現的個數 |
| list.insert(index, obj) | 將該元素插入列表指定的索引位置 |
| list.clear() | 清空列表里的元素 |
| sort() | 對元素排序,默認升序,傳入參數reverse=True 降序 |
| extend() | 用於在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表) |
| pop() | 刪除指定位置的元素 |
| remove() | 刪除具有指定值的項目 |
| reverse() | 顛倒列表的順序 |
參考:https://www.w3school.com.cn/python/python_ref_list.asp
六、 元組(tuple)
元組和列表類似 不過 用 () 表示 且元組 是不能修改的 也就是一旦定義,就不能更改添加刪除里面的元素
6.1、定義一個元組
# 定義一個元組
tu = ('片仔癀','同仁堂')
print(tu)
# 查看元組第一個值
print(tu[1])
>>> ('片仔癀', '同仁堂')
>>> 同仁堂
6.2、元組擴展
# 因為元組是不可以更改 我們可以通過拼接來擴展
tu1 =('五糧液','伊利')
tu2 = tu+tu1
print(tu2)
>>> ('片仔癀', '同仁堂', '五糧液', '伊利')
6.3、刪除元組
# 可以用 del 刪除整個元組
del tu2
print(tu2)
>>> NameError: name 'tu2' is not defined
注: 當元組里面只有一個值的時候 后面要加 英文 逗號
6.4 元組常使用的操作方法
| 方法 | 作用 |
|---|---|
| len(tuple) | 統計元組個數 |
| max(tuple) | 返回元組里面最大值 |
| min(tuple) | 返回元組里面最小值 |
| count() | 返回元組中指定值出現的次數。 |
| index() | 在元組中搜索指定的值並返回它被找到的位置。 |
七、 集合(set)
集合也是一個裝載數據的容器 他的里面的元素特點是 元素不能重復 且 是無序的 沒有索引
使用 {} 表示 或 set() 創建一個空集合 必須用set() 因為空 {} 有其他數據占用
7.1、創建集合
# 定義一個集合
se = {'伊利','茅台'}
print(se)
se1 = set("片仔癀")
print(se1)
# 判斷元素是否在集合
print('伊利' in se)
>>> {'伊利', '茅台'}
>>> {'癀', '仔', '片'}
>>> True
7.2、集合常使用的操作方法
| 方法 | 作用 |
|---|---|
| add() | 添加元素 |
| update( x ) | 添加元素,參數可以是列表,元組,字典等 |
| remove() | 刪除指定的元素,元素不存在會報錯 |
| pop() | 隨機移除一個元素 |
| discard() | 移除指定元素,不存在不會報錯 |
| clear() | 清空所有的元素 |
| intersection() | 返回為兩個其他集合的交集的集合。 |
| difference() | 返回包含兩個或更多集合之間差異的集合。 |
| union() | 返回包含集合並集的集合。 |
參考:https://www.w3school.com.cn/python/python_ref_set.asp
八、 字典(dict)
字典像一個雙列 列表 她是鍵值對形式的出現 {’key':'value'} 且一個key 只對應一個value值,
key 不能重復且必須是不可變類型 ,值可以是任意對象
多個鍵值對以英文逗號隔開
8.1、創建字典
# 定義一個字典
di = {'茅台':2000,"片仔癀":'400'}
print(di)
>>> {'茅台': 2000, '片仔癀': '400'}
8.2 、添加值
# 給字典 添加一對 "伊利":35
di["伊利"] = 35
print(di)
>>> {'茅台': 2000, '片仔癀': '400', '伊利': 35}
8.3、修改
# 修改字典里面的值,然后在根據鍵查看里面的值
di["茅台"] = 2500
print(di["茅台"])
>>> 2500
8.4 、刪除
# 刪除 一對鍵值
del di["伊利"]
print(di)
>>> {'茅台': 2500, '片仔癀': '400'}
# 刪除整個字典
del di
print(di)
>>> NameError: name 'di' is not defined
8.5、字典一些常用操作方法
| 方法 | 作用 |
|---|---|
| len(dict) | 返回字典鍵的數量 |
| clear() | 刪除字典全部元素 |
| pop(key) | 刪除指定的鍵值 |
| popitem() | 隨機返回並刪除字典中的最后一對鍵和值。 |
| get(key) | 獲取指定鍵的值 |
| setdefault(key, defaultvalue) | 獲取指定鍵的值,如果鍵不存在則返回 值defaultvalue |
| copy() | 復制一個字典返回 |
| keys() | 返回字典里面所有的key ,以列表形式展示 |
| values() | 返回字典里面所有的value值 ,以列表形式展示 |
