1. 程式人生 > >Python學習(第三章)

Python學習(第三章)

重復 明顯 ctr 最小 函數註釋 pre 控制臺輸出 一個 turn

一、 轉義字符

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學習(第三章)