Python基础
1.变量名的两种风格
变量名
变量名必须由数字/字母/下划线_组成
1.驼峰体
AgeOfNick = 19
print(AgeOfNick)
2.下划线(推荐)
age_of_nick = 19
print(age_of_nick)
2.常量
python是没有常量的,但是python制定了一个规范,常量名全部大写。
3.python的垃圾回收机制
x=10
x=11
原本x与10相关联,但是后来x与11相关联,10由于没有引用,被python视为垃圾,并释放回收10所占用的内存。
引用计数 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的内存占用
4.小整数池
对于上一节讲的引用计数,需要注意的是:Python实现int的时候有个小整数池。为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,范围是[-5,256],该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被垃圾回收机制回收。
在pycharm中运行python程序时,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究。
间隔时间短的全部一样
针对python shell
5.变量的三个特征
x=10
变量值
print(x)
内存地址值
print(id(x))
变量数据类型
print(type(x))
实验 shell
shell中,除了小整数池的内容会共用且不会被垃圾回收,大整数内容相同,地址不同,不共用,会被垃圾回收。
pycharm中,大小整数都共用同一地址的变量内容。
从上述的打印消息可以看出:id相等的变量,值一定相等,指向的是同一个内存地址;值相等的变量,id不一定相等。
== 判断值是否相等
is 判断id是否相等
6.变量赋值
交叉赋值
x=100
y=200
x, y=y, x
print(x)
print(y)
200
100
7.字符串(str)
1.定义
字符串定义有三种方式:‘ ’, " ", ''' '''其中三引号可以保持代码中的源格式,不识别特殊符号
8.布尔值
Python中所有数据类型的值自带布尔值。如此多的数据类型中只需要记住只有0、None、空、False的布尔值为False,其余的为True。
短路运算
1.在计算a and b
时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
2.在计算a or b
时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
9.解压缩
lis=[1,2,3,4]
x,*_,y=lis
print(x)
print(_)
print(y)
1
[2,3]
4
10.格式化输出飞三种方式
占位符
name = 'nick'
age = 19
print('my name is %s my age is %s' % (name, age))
format格式化:
name = 'nick'
age = 1
print("Hello, name}. You are {age}-{age}.".format(age=age, name=name))
f-String格式化
大小写f都行
name = "nick"
age = 19
print(F"Hello, {name}. You are {age}.")
11.for else
# for+else
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
print(name)
else:
print('for循环没有被break中断掉')
nick
jason
tank
sean
for循环没有break中断掉
12.python的for
python的for主要用于字符串,list,dict等数据的取值
如果想用于次数循环(嵌套啥的)可以这样
for i in range(2):
print(f'大循环:{i}')
for j in range(3):
print(f'小循环:{j}')
大循环:0
小循环:0
小循环:1
小循环:2
大循环:1
小循环:0
小循环:1
小循环:2