变量与数据类型

这篇博客主要介绍了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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值