Python學習(第三章)
一、 轉義字符
1. \t 使輸出垂直方向保持對齊
# \t 在控制臺輸出一個制表符,是輸出垂直方向保持對齊 print("1 2 3") print("10 11 12") print("1\t2\t3") print("10\t11\t12")
---------------------------------------------------
1 2 3
10 11 12
1 2 3
10 11 12
二、Pycharm小拓展
1. 調試: F8: step over
F7: step into
2. 函數要定義的上方應該和其他代碼(包括註釋)保留兩個空行
3. View –> Quick Documentation 查看函數註釋 快捷鍵 CTRL+Q
三、 函數
1. 函數的返回值 return, return後的代碼都不會執行
四、 模塊
1. 所有以 .py 結尾的文件都是一個模塊
在模塊中定義的全局變量、函數都是模塊可以提供給外界使用的工具
模塊好比是工具包,要使用工具包中的工具要 import 這個模塊
2. 模塊名也是一個標識符,不能以數字開頭,否則無法導入
3. 在目錄 \__pycache__ 中, Python解釋器為了提高程序的執行性能,會把使用import導入的模塊先編譯成一個二進制 .pyc 文件
五、高級變量類型
1. 數字型
- 整型
- 浮點數
- 布爾型
- 復數型--用於科學計算
2. 非數字型
- 字符串
- 列表
- 元組
- 字典
所有非數字型都支持以下特點:
>1 都是一個序列 sequence, 也可以理解為容器
>2 取值 []
>3 遍歷 for in
>4 計算長度、最大/最小值、比較、刪除
>5 連接 + 和重復 *
>6 切片
六、 列表
列表用於存儲一串信息,用 [ ] 定義,用 , 分隔
列表的常用11個操作:
name_list = ["zhangsan","lisi","wangwu"] # 1. 取值和取索引print(name_list[2]) # index 取索引 print(name_list.index("lisi")) # 2. 修改 name_list[1] = "xiaoer" # 3. 增加數據 # append 末尾增加 name_list.append("王小二") print(name_list) # insert 把數據增加到指定索引位置 name_list.insert(1,"小美眉") print(name_list) # extend 把其他列表的內容追加到末尾 temp_list= ["孫悟空","zhangsan","沙師弟"] name_list.extend(temp_list) print(name_list) # 4. 刪除數據 # remove 刪除某個數據 name_list.remove("wangwu") print(name_list) # pop 把列表中最後一個元素刪除 name_list.pop() print(name_list) # pop 可以指定要刪除元素的索引 name_list.pop(3) print(name_list) # clear 可以清空列表 name_list.clear() print(name_list) # 5. 統計 name_list = ["zhangsan","lisi","wangwu","xiaoer","zhangsan"] # len 列表數據的個數 list_len = len(name_list) print("列表中的元素有%d個"%list_len) # count 數據出現的次數 count = name_list.count("zhangsan") print("zhangsan有%d個"%count) # remove 只會刪除第一個出現的數據 name_list.remove("zhangsan") print(name_list) name_list = ["zhangsan", "lisi", "wangwu", "wangxiaoer"] num_list = [6, 4, 1, 8, 7, 10] # sort 升序與降序 name_list.sort() num_list.sort(reverse = True) print("升序",name_list) print("降序",num_list) # reverse 列表反轉 逆序 num_list.reverse() print("逆序", num_list)
-----------------------------------------------------------------
wangwu
1
[‘zhangsan‘, ‘xiaoer‘, ‘wangwu‘, ‘王小二‘]
[‘zhangsan‘, ‘小美眉‘, ‘xiaoer‘, ‘wangwu‘, ‘王小二‘]
[‘zhangsan‘, ‘小美眉‘, ‘xiaoer‘, ‘wangwu‘, ‘王小二‘, ‘孫悟空‘, ‘zhangsan‘, ‘沙師弟‘]
[‘zhangsan‘, ‘小美眉‘, ‘xiaoer‘, ‘王小二‘, ‘孫悟空‘, ‘zhangsan‘, ‘沙師弟‘]
[‘zhangsan‘, ‘小美眉‘, ‘xiaoer‘, ‘王小二‘, ‘孫悟空‘, ‘zhangsan‘]
[‘zhangsan‘, ‘小美眉‘, ‘xiaoer‘, ‘孫悟空‘, ‘zhangsan‘]
[]
列表中的元素有5個
zhangsan有2個
[‘lisi‘, ‘wangwu‘, ‘xiaoer‘, ‘zhangsan‘]
升序 [‘lisi‘, ‘wangwu‘, ‘wangxiaoer‘, ‘zhangsan‘]
降序 [10, 8, 7, 6, 4, 1]
逆序 [1, 4, 6, 7, 8, 10]
七、 關鍵字、函數與方法
- 關鍵字 是Python內置的,使用時後面不用加括號。如 while、del、for……
- 函數 封裝了獨立的功能,但需要記住函數名,死記硬背
- 方法 和函數類似,同樣封裝了獨立的功能,但需要通過 對象 來調用,表示針對這個對象可以做哪些操作
八、 元組
用()定義,元素不能修改
1. 元素個數為0的元組
single_tuple = (5) print(type(single_tuple)) single_tuple = (5,) print(type(single_tuple)) ------------------------------------------------------------------- <class ‘int‘> <class ‘tuple‘>
2. 三個主要應用場景
- 作函數的參數和返回值 一個函數可以接受任意多個參數 或 一次返回多個數據
- 格式字符串,格式化字符串後面的()本身就是一個元組
- 讓列表可以不被修改,保護數據安全
九、 列表與元組轉換
列表轉元組 tuple(列表),元組轉列表 list(元組)
字典是無序的 對象的集合,鍵值對間用 , 分開
十、 字典
應用場景:存儲某一物體的所有特征
用 { } 定義,key是索引,value是值,key和value用 : 分開,key具有唯一性
# 無序 xiaoming = {"name":"xiaoming"} print(xiaoming) # 1. [] 取值 print(xiaoming["name"]) # 2. 增加/修改,key存在則修改,不存在則增加 xiaoming["age"] = 18 xiaoming["name"] = "xiaoxiaoming" print(xiaoming) # 3. pop 刪除 xiaoming.pop("name") print(xiaoming) ------------------------------------------------------------------------------------------------------ {‘name‘: ‘xiaoming‘} xiaoming {‘name‘: ‘xiaoxiaoming‘, ‘age‘: 18} {‘age‘: 18}
xiaoming_dic = {"name":"xiaming", "age":18} #1. len 統計鍵值對數量 print(len(xiaoming_dic)) #2. updata 合並字典,有相同的key則覆蓋新的value temp_dic = {"heighe":1.5,"age":1000} xiaoming_dic.update(temp_dic) print(xiaoming_dic) #3,clear 清空字典 xiaoming_dic.clear() print(xiaoming_dic) -------------------------------------------------------------------------------------- 2 {‘name‘: ‘xiaming‘, ‘age‘: 1000, ‘heighe‘: 1.5} {}
十一、 字符串
hello_str = "hello hello" # 字符串長度 print(len(hello_str)) # 統計子字符串出現次數,若不存在則輸出0 print(hello_str.count("llo")) print(hello_str.count("abc")) # 輸出第一個子字符串索引位置,不存在會報錯 print(hello_str.index("llo")) ------------------------------------------------------------------------------------------------- 11 2 0 2
判斷
# isspace() 註意 \t \r \n space_str = " " print(space_str.isspace()) # True space_str = " a" print(space_str.isspace()) # False space_str = " \t\r\n" print(space_str.isspace()) # True # 判斷字符串中是否只包含數字 常用.isdicimal() # 都不能判斷小數 1.1 # isdigit():unicode 字符串(1) # isnumeric():中文數字“一千零一” num_str = "1" print(num_str.isdecimal()) #True print(num_str.isdigit()) # True print(num_str.isnumeric()) # True
查找和替換
註意:replace() 不會改變原始字符串內容
hello_str = "hello hello world" # 判斷是否以指定的字符串開始或結束 print(hello_str.startswith("Hello")) # False print(hello_str.endswith("world")) #Trus # find() 與 index() 不同,當子字符串不存在時不會報錯,而是會輸出 -1 print(hello_str.find("hello")) # 0 print(hello_str.find("abc")) # -1 # replace()註意:不會修改原有字符串的內容 print(hello_str.replace("world","python")) # hello hello python print(hello_str) # hello hello world
文本對齊
poem = ["登鸛雀樓", "王之渙", "白日依山盡", "黃河入海流", "欲窮千裏目", "更上一層樓"] # 居中對齊 因為是英文的空格所以不太整齊 for poem_str in poem: print("|%s|"%poem_str.center(10," ")) # 居中對齊 for poem_str in poem: print("|%s|"%poem_str.ljust(10," ")) # 居中對齊 for poem_str in poem: print("|%s|"%poem_str.rjust(10," "))
------------------------------------------------------------
| 登鸛雀樓 |
| 王之渙 |
| 白日依山盡 |
| 黃河入海流 |
| 欲窮千裏目 |
| 更上一層樓 |
|登鸛雀樓 |
|王之渙 |
|白日依山盡 |
|黃河入海流 |
|欲窮千裏目 |
|更上一層樓 |
| 登鸛雀樓|
| 王之渙|
| 白日依山盡|
| 黃河入海流|
| 欲窮千裏目|
| 更上一層樓|
去除空白字符
poem = ["\t\n登鸛雀樓", "王之渙", "白日依山盡\t\n", "黃河入海流", "欲窮千裏目", "更上一層樓"] for poem_str in poem: # 先用.strip() 去除空白字符 print("|%s|"%poem_str.strip().rjust(10," ")) -------------------------------------------------------------------------------------------------------------- | 登鸛雀樓| | 王之渙| | 白日依山盡| | 黃河入海流| | 欲窮千裏目| | 更上一層樓|
Python學習(第三章)