第一节

54 阅读5分钟

基本数据类型

变量

定义:先定义,后引用。 组成部分:变量名,赋值符号,变量值

垃圾回收机制

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(与)运算符

  1. 功能 - 当使用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 
  1. 短路特性 - and运算符具有短路特性。在计算a and b时,如果aFalse,那么就不会再计算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(或)运算符

  1. 功能 - 当使用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 
  1. 短路特性 - or运算符也具有短路特性。在计算a or b时,如果aTrue,那么就不会再计算b,直接返回True
  • 示例:
def function3(): 
    print('function3被调用') 
    return True 
def function4():
    print('function4被调用') 
    return False function3() or function4() 
# 输出:function3被调用,因为function3返回True,所以不会再计算function4,整个or表达式结果为True 

三、not(非)运算符

  1. 功能 - 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(),{} 集合取并集、交集、差集

数据类型

容器类型

可变不可变