python基础
执行Python程序的两种方式
- 交互式——优点:一直保存;缺点:代码全部写完才能调试
- 命令行式——优点:边运行边执行;缺点:终端关闭即消失
变量
定义:描述世间万物的状态
作用:存储数据和标记数据
特征表示:打印变量值、查看内存空间(id)、查看数据类型(type)
组成部分:变量名、赋值、变量值
变量名命名规范:
-
由数字、字母、下划线组成。
-
变量名第一个字符不能为数字。
-
关键字不能为变量名。
变量名风格:
-
驼峰体
-
下划线(推荐)
常量:变量名全部为大写。
变量内存管理
垃圾回收机制:当定义一个变量x=10时,此时内存就会开辟一条内存空间存储这个变量值10,变量值10的引用计数为1,如果再定义一个变量x=11,此时内存又会开辟另一条内存空间给这个变量值11,但是之前存在变量名x,故内存会解除x与10的连接,让x与11连接,此时变量值10没有变量名连接,引用计数为0,在python中属于垃圾,python会自动处理并释放变量值为10的内存占用,这就是垃圾回收机制。
引用计数:只要某个变量值绑定着门牌号,就不是垃圾,反之变量值没有绑定着门牌号,这个变量值就是垃圾,python就会自动清理这个垃圾。在python中这个门牌号被称作引用计数。
x = 10 # 10引用计数加1为1
y = x # 10引用计数加1为2
x = 11 # 10引用计数减1为1;11引用计数加1为1
del y # 10引用计数减1为0,触发python垃圾回收机制,python清理10的内存占用
小整数池
定义:Python实现int时为了避免因创建相同的值而重复申请内存空间所带来的效率问题。
-
在解释器中范围为[-5,256],该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被垃圾回收机制回收。
-
在pycharm中,有所优化,时间间隔短的,无论多大,id都一样。
交叉赋值
x = 100
y = 200
x,y = y,x
print(x,y) #200 100
注释
# 单行注释
'''
多行注释
'''
如何盲打
-
刚开始一定要慢,严格按照图中所示控制手指
-
养成习惯,从大脑记忆到肌肉记忆
-
盲打
-
敲完一个字符手指马上回位,强化神经线路
数据类型
-
数字类型(整型int和浮点型float)
-
字符串类型(str)
定义:一串被串起来的字符,在单引号、双引号或三引号内包裹的一串字符。需要注意的是:三引号内的字符可以换行,而单双引号内的字符不行。
s1 = 'allen' s2 = "my name is 'allen'" #单双引号同时使用的字符串 s3 = ''' hello,my name is 'allen'.''' print(s3) #打印有换行 s4 = '''hello,my name is 'allen'.''' print(s4) #打印无换行 print(s1+s2)#进行加法运算 print(s1*10)#进行乘法运算
-
列表类型(list)——存不是目的,取才是目的。
定义:在[]内用逗号分隔开任意类型的值。
lis = ['name','age','gender','hobby'] print(lis[0]) #name print(lis[-1]) #hobby
-
字典类型(dict)
定义:在{}内用逗号分隔开多个元素,每一个元素都是key: value的格式,其中value是任意格式的数据类型,key由于具有描述性的作用,所以key通常是字符串类型。
dic = {'name':'allen', 'age':22, 'gender':'male', 'hobby':['read','music','run','piao']} print(dic['hobby']) #['read', 'music', 'run', 'piao']
-
布尔类型(True和False)
定义:用于逻辑判断,不会直接引用。
print(bool(0)) print(bool(None)) print(bool([])) print(bool({})) print(bool('')) print(bool(False)) #python中所有数据类型都自带布尔值,只有0、None、False、空数据类型的布尔值为False,其余全为True。
解压缩
定义:超市打包是把多个商品放在一起,解压缩其实就是解包把多个商品一次性拿出来。
name_list=['alex','egon','allen']
x,y,z=name_list
print(x,y,z) #alex egon allen
x,_,z=name_list#不想要的可使用万能的下划线
print(x,z) #alex allen
*_,z=name_list # *表示所有
print(*_,z) #alex egon allen
info_dict={'name':'allen','age':18,'gender':'male'}
x,y,z=info_dict
print(x,y,z) #name age gender
用户交互
定义:用input方法接受用户输入信息。
username = input('请输入用户名:')
print(type(username)) #<class 'str'>
#无论我们输入的值是数字类型、字符串类型、列表类型,input的接收值都是字符串类型。