基本数据类型
变量
定义:先定义,后引用。 组成部分:变量名,赋值符号,变量值
垃圾回收机制
python解释器存在垃圾回收机制,内存管理
引用计数:内存空间引用的次数
del
- 循环引用的解决方法:标记清除
- 标记清楚:当内存空间不足,暂停运行,扫描栈区直接引用或者间接引用的值,清除没有引用的值。
- 分代回收:设定权限,进行标记清除
is ,== is ,判断id是否一样 ==,判断值是否相同
字符串驻留机制:当两个字符串变量值相等,且只包含字母、数字、下划线,两个变量指向同一块内存空间
小整数池:范围【-5,256】,整数不会被回收。
# 超出范围
>>> a = 1000
>>> b = 1000
>>> a is b
False
>>>
# 范围以内
>>> a = 10
>>> b = 10
>>> a is b
True
常量
PI = 3.1415926
AGE = 18
# C语言中const关键字定义常量
1.基本数据类型
数字类型
- 整数类型int
- 浮点数类型float
- 数字类型可以跨类型使用+
字符串类型
a = 'abc'
a = 'my name is "张"'
a = 'my name is \'张\''
列表类型
l = [a,1,5.2,'aaa']
字典类型
# 存储多个值,可以具有描述性的功能
dict = {'name':'张',
'age' = 18,
'weight' = 60
}
dict['name']
布尔类型
boolean = True
boolean = False
None 类型Nonetype
列表在内存中的存储
列表、字典只存储索引以及索引值的内存地址
格式化字符串
%'my name is %s,i am from %s' %('小张','江苏') |%s、%d:任意字符类型,整形format'my name is {},i am from {}'.format('小张','江苏')f(3.5版本以后)
name = input('请输入名称:')
home = input('请输入地址:')
info = f'my name is {name}, i live in {home}'
print(info)
string-Temp
|后续补充,自己学习
可变与不可变类型
1.可变类型
2.不可变类型
条件判断
逻辑运算符
and偷懒原则,首先判断前面是否符合条件,如果前面不符合,即后续不再判断
逻辑运算符优先级练习
6 > 7 or (8 > 9 and 10 > 9)
false
(6 > 7 or 8 > 4) and 10 > 9
true
(7 > 6 or 8 > 4) and 10 > 9
true
7 > 6 or (8 > 4 and 10 > 9)
true
and(与)运算符
- 功能 - 当使用
and连接两个布尔表达式时,只有当两个表达式的值都为True时,整个and表达式的值才为True。如果其中一个表达式的值为False,那么整个and表达式的值为False。
- 示例:
x = 5 y = 10 print(x > 3 and y < 15)
# True,因为x > 3为True,y < 15为True
print(x < 3 and y < 15) # False,因为x < 3为False
- 短路特性 -
and运算符具有短路特性。在计算a and b时,如果a为False,那么就不会再计算b,直接返回False。
- 示例:
def function1():
print('function1被调用')
return True
def function2():
print('function2被调用')
return False function1() and function2()
# 输出:function1被调用,因为function1返回True,所以会继续计算function2
# 此时function2被调用并返回False,整个and表达式结果为False
二、or(或)运算符
- 功能 - 当使用
or连接两个布尔表达式时,只要其中一个表达式的值为True,整个or表达式的值就为True。只有当两个表达式的值都为False时,整个or表达式的值为False。
- 示例:
x = 5 y = 10
print(x > 10 or y < 15)
# True,因为y < 15为True print(x > 10 or y > 15)
# False,因为x > 10为False且y > 15为False
- 短路特性 -
or运算符也具有短路特性。在计算a or b时,如果a为True,那么就不会再计算b,直接返回True。
- 示例:
def function3():
print('function3被调用')
return True
def function4():
print('function4被调用')
return False function3() or function4()
# 输出:function3被调用,因为function3返回True,所以不会再计算function4,整个or表达式结果为True
三、not(非)运算符
- 功能 -
not是一元运算符,用于对单个布尔表达式取反。如果表达式的值为True,那么not表达式的值为False;如果表达式的值为False,那么not表达式的值为True。
- 示例:
x = 5
print(not(x > 10))
# True,因为x > 10为False,取反后为True print(not(x < 10))
# False,因为x < 10为True,取反后为False
成员运算符in 字典判断key
流程控制:
- if判断
判断身体是否健康,使用if循环
high = int(input("请输入你的身高(单位米):"))
weight = int(input("请输入你的体重(单位千克):"))
age = int(input("请输入你的年龄:"))
if age < 10:
print('10岁以下儿童不参与健康评估')
elif 10 <= age < 60:
if weight/(high**2) < 18.5:
print('体重过轻')
elif weight/(high**2) > 24:
print('体重过重')
else:
print('体重正常')
else:
print('60岁以上老人不参与健康评估')
- for循环
for i in range(1,10):
for j in range(1,i+1):
print(f'{i} * {j} = {i*j}',end =' ')
print()
- while循环
深浅拷贝
- 浅拷贝:
- 深拷贝:
列表推导式
- 概念:将列表中的每一个元素经过相同的元素,进行相同的操作,生成了一个列表。
- 比如:一个列表中都是数字,需要生成一个新的列表
list1 = [1,2,3,4,5,6]
list2 = []
for num in list1:
list2.append(num*num)
- 使用列表推导式
list1 = [1,2,3,4,5,6]
list2 = [num**2 for num in list1]
循环嵌套
字符串详解
- 切片
- strip()
- split()
- startwith
- endwith
- join
- replace
- isdigit
列表详解
- 索引取值
- 追加
- 插入
- extend
- pop
- del
- 切片
- reverse
- sort
队列和堆栈
-
队列(FIFO 先进先出)
-
堆栈(LIFO 后进先出)
元组
- 容器类型
字典
- keys
- values
- items
集合set(去重、做关系运算)
关系运算,去重 遍历,for循环 set(),{} 集合取并集、交集、差集