天天看點

變量與資料類型一、寫代碼思想二、python文法的萬能法則三、變量與基本資料類型四、接收使用者輸入五、運算符六、可變不可變類型

一、寫代碼思想

1.1 可讀性(首選)

2.1 簡潔性

二、python文法的萬能法則

​ 2.1 是什麼

​ 2.2 存在的意義

​ 2.3 怎麼用

三、變量與基本資料類型

1. 變量

​ 是什麼?

​ 變量: 可以變化的量, 量指的是事物的狀态

​ 存在的意義?

​ 記憶事物的某種狀态, 且狀态可以發生變化(程式的本質是一系列狀态的變化)

​ 使用:

​ 原則: 先定義後引用

​ 變量的定義: 變量名 = 值

​ 變量的記憶體管理:

​ 垃圾回收機制: 垃圾指的是變量值被綁定的變量名為0時, 變量值無法被通路到

​ 引用計數增加

​ x = 10

​ y = x

​ 引用計數減少

​ del x # 解除變量名x與值10的綁定關系, 10的引用計數減1

​ 變量名的命名:

​ I: 變量名

​ 命名原則: 見名知意

​ 命名規則:

​ 隻能是數字、字母、下劃線;

​ 不能以數字開頭;

​ 不能使用python關鍵字

​ ps: 在見名知意的前提下盡可能短

​ 命名風格: 純小寫+下劃線

​ II: =

​ III: 變量值

​ id: 是變量值的記憶體位址, 記憶體位址不同則id不同

​ type: 不同類型的值用來記錄不同的狀态

​ value: 值本身

​ IV: is 與 ==

​ is: 比較id是否相等

​ ==: 比較兩個值是否相等

​ 小整數池: python解釋器啟動 —> 記憶體中存放一系列整數(-5 ~ 256)

​ 目的: 減少IO操作, 提高效率

2. 常量(不變的量)

​ python中沒有常量的概念, 約定變量名全為大寫, 代表常量

3.基本資料類型

1. 數字類型

1.1 整型(int)

​ 定義: age = 18 ===> age = int(10)

​ 作用:

​ 進制轉換: bin() oct() hex ()

### 1.2 浮點型(float)
           

​ 定義:

​ 作用:

​ int與float可以相加

2. 字元串(str)

​ 作用: 記錄描述性質的狀态

​ 定義: 必須加 ‘ 字元串 ’, “ 字元串 ”, ‘’’ 字元串 ‘’’, “”" 字元串 “”"

​ 字元串相加: ‘123’ + ‘abc’ (效率低, 不推薦)

#### 	字元串内置方法:
           

​ 掌握(**): 索引取值 切片(索引) 切分:split() join() strip() len() 成員運算:in/not in

​ 了解: find() rfind() index() rindex() count()

​ center() ljust() rjust() zfill()

​ 設定制表符代表的空格數:expandtabs()

​ 第一個單詞首字母大寫: captalize() 大小寫翻轉: swapcase() 每個單詞首字母大寫: title()

​ islower() isupper() istitle() 字母或數字組成: isalnum() 字母組成: isalpha() 空格組成: isspace() 判斷辨別符是否合法: isdentifier()

​ num1 = b’4’ num2 = u’4’ num3 =‘四’ num4 = ‘IV’

​ isdigit() —> True: num1 num2

​ isnumeric() —> True: num2 num3 num4

​ isdecimal() —> True: num2

​ 字元串格式化輸出:

​ 方法一:

​ % 速度最慢

​ ‘’’

​ name: %s

​ age: %d

​ weight: %f

​ ‘’’ % (‘xxx’, 18, 52.8)

​ ‘’’

​ name: %(name)s

​ age: %(age)d

​ weight: %(wg)f

​ ‘’’ % (‘name’: xxx’, ‘age’ = 18, ‘wg’ = 52.8)

​ %f: 浮點型

​ %d: 整型

​ %s: 字元串, 可以接收任意類型

​ 方法二:

​ str.format() —> 2.6引入, 相容性好, 速度比%快, 比f-str慢

​ ‘’’

​ name: {}

​ age: {}

​ weight: {}

​ ‘’’.format(‘王二’, 18, 50.5)

​ ‘’’

​ name: {0}

​ age: {1}

​ weight: {2}

​ ‘’’.format(‘王二’, 18, 50.5)

​ ‘’’

​ name: {name}

​ age: {age}

​ weight: {wg}

​ ‘’’.format(name=‘王二’, age=18, wg=50.5)

​ 方法三:

​ f-str —> 3.5後引入, 速度最快

​ f’’’

​ name: {‘王二’}

​ age: {18}

​ weight: {50.5}

​ ‘’’

​ 方法四:

​ 标準庫模闆

3. 清單

​ 定義: 在[]内用逗号’, '分開多個任意類型的值, 一個值稱之為一個元素

​ 作用: 按位置記錄多個值, 并且可以按照索引取出指定位置的值

​ 清單在記憶體中的存儲方式: 開辟一個記憶體空間, 存儲索引對應值的記憶體位址

​ my_list = [1, 2, ‘3’, [1, 2, 3]]

​ 增:

​ 末尾添加: my_list.append(4)

​ my_list.extend([9, 8, 7])

​ 任意位置添加: my_list.insert(1, ‘hhh’)

​ 删:

​ 删除最後一個: my_list.pop()

​ 指定位置删除: my_list.pop(2)

​ 通過值删除: my_list.remove([1,2,3])

​ del my_list(0) —> 0為索引

​ 改:

​ my_list[0] = ‘1’

​ 查:

​ my_list[2]

​ my_list[-1]

​ 可嵌套取值

​ 類型轉換: 能夠被for循環周遊的類型都可以list()轉換成清單(str tuple dict)

​ 内置方法

​ 索引取值 切片 成員運算: in/not in 追加: append() 任意位置插入值: insert() 清單擴充: extend() 删除: pop() remove() 公共的删除方法(沒有傳回值): del 循環: for 長度: len()

​ 了解: count() index() clear() 翻轉: reverse() 排序: sort()

4. 字典

​ 定義: 在{}内用’, '分開多個key: value(字典中元素預設無序)

​ 作用: 用來存儲多個值, 每個值都有唯一與之對應的key, key是唯一不可重複的

字典在記憶體中的存儲方式: 開辟一個記憶體空間, 存儲key對應值的記憶體位址

​ my_dic = {

‘name’: ‘王二’

‘age’: 18=

‘height’: 1.81

‘weight’: 60.5

}

​ 增:

​ my_dic[hobby] = ‘read’

​ 删:

​ del my_dic[‘age’]

​ 改:

​ my_dic[‘name’] = ‘李四’

​ 查:

​ my_dic[‘name’]

​ 可嵌套取值

類型轉換:

内置方法:

​ 長度: len() 成員運算: in/not in

​ 删除: del pop():根據key删除元素傳回對應的value值 popitem():随機删除傳回元組(key, value)

​ keys() values() items() 循環

​ fromkeys() clear() get():按照key取值(key不存在傳回None, 不報錯) update() setdefault(): key存在pass, key不存在新增key-value鍵值對, 傳回字典key對應的值

5. 布爾

​ 作用: 記錄真假兩種狀态

​ 定義: is_ok = True

​ is_ok = False

​ 使用: 條件判斷時使用

6. 元組

my_tuple = (1, 2, 3, 4)

​ 查:

​ my_tuple [0] —> 索引取值

類型轉換:

内置方法:

​ 索引取值 切片 成員運算: in/not 長度:len() 循環 index() count()

7. 集合

my_set = {1, 2, 3, 4}

天生去重

​ 隻能針對不可變類型

​ 無法保證原來的順序

增:

​ my_set.add(5)

​ my_set.update({5, 6}) my_set.update([5, 6], [7, 8])

兩個集合的運算(關系運算:):

​ a = {1,2,3}

​ b = set(3, 4,5,)

​ 集合a中包含而集合b中不包含的元素(差集) a-b

​ 集合a或b中包含的所有元素(并集) a | b

​ 集合a和b中都包含了的元素 (交集) a & b

​ 不同時包含于a和b的元素(對稱差集) a ^ b

​ 父子集: {1, 2, 3} > {1,2}

内置方法:

​ intersection():交集 union(): 并集 difference(): 差集 symmetric_difference():對稱差集 issuperset(): 父集 issubset():子集 in/not in len() discard():删除元素 update() pop():随機删除 add() isdisjoint(): 判斷兩個集合是否完全獨立

8.

四、接收使用者輸入

變量名 = input(‘提示資訊’)

五、運算符

運算符優先級:

1. 算數運算

​ + - * ** / // %

2. 比較運算

​ > >= < <= == !=

3. 指派運算

​ 變量的指派: =

​ 增量指派: += -= *= /= //= %= **=

​ 鍊式指派(把一個值指派給三個變量): x = y = z = 10

​ 交叉指派(兩個變量交換值): a, b = b, a

​ 解壓指派(解包): a, b, c = [1, 2, 3]

​ a, b, *_ = [1, 2, 3, 4, 5] —> _:用下劃線當變量名, 綁定的是被廢棄的值

4. 成員運算

​ in not in

5. 邏輯運算

​ not and or

​ 優先級: not > and > or

6. 身份運算

​ is 判斷id是否相等

六、可變不可變類型

int, float, str 都被設計成了一個不可分割的整體, 不能被改變

可變類型(值改變, id不變): list set dict

不可變類型: tuple bool

繼續閱讀