前言:这周迷上了打羽毛球,正所谓“人菜瘾大”,一下班,就喊上狂徒张三去楼下空地打球,一直打到天黑为止。打完球浑身大汗淋漓,又是洗澡洗衣,额外占用了点学习的时间,但人很快乐,感觉自己活了过来,是真正地在活着。总结一下本周的python学习内容吧。
一、变量
(一)变量的基本使用
name='Emery' #定义变量----存
print(name) #引用----取
(二)内存管理之垃圾回收机制
定义变量会占用内存空间。
垃圾回收机制(GC)——引用计数、标记消除、分代回收
何谓垃圾?
当一个变量值被绑定的变量名个数为0时,该变量值无法被访问到,称之为垃圾。
(三)变量三大组成部分
1、变量名
(1)变量名命名规则
原则:见名知意
不要用拼音,不要用中文,在见名知意的情况下尽可能短。
(2)变量名的命名风格
a.纯小写加下划线方式
age-of-alex=73
b.驼峰体
AgeOfAlex=73
2、赋值符号
3、变量值
id:反映变量值内存地址,内存地址不同则id不同
type:不同类型的值用来记录不同状态
value:值本身
IS与==
is:比较左右两个值身份ID(内存地址)是否相等
==:比较左右两个值他们的值是否相等
ID不同的情况下,值有可能相同;ID相同的情况下,值一定相同。即:
X is Y成立,则
X==Y必然成立
二、基本数值类型
1、整型 int
2、浮点型 float
3、字符串 str
字符串的嵌套——外层用双引号,内层用单引号
print("my name is 'Emery'")
4、列表 list
在[] 内用逗号分隔开多个任意类型的值,一个值称之为一个元素
L=[16,'aaa',3.1,['bbb','ccc']]
5、字典 dict
在{}内用逗号分隔开多个key:value,其中value可以是任意类型,但key必须是不可变类型。
info={
"name":'Emery'
"age":16
"gender":'female'
}
6、布尔类型
true false
补充:可变不可变类型
可变类型:值改变,id不变(list dict bool)
不可变类型:值改变,id也变了(int float str)
三、格式化输出
(一)%
值按照位置与%s一一对应,少一个不行,多一个也不行
res="my name is %s my age is %s" % {"name":'Emery',"age":'16'}
print(res)
注意:%s可以接收任意类型数值
%d只能接收int类型
(二)str.format
res="我的名字是{name} 我的年龄是{age}".format(age=16,name='Emery')
print(res)
(三)f
x=input('your name: ')
y=input('your age: ')
res=f'我的名字是{x} 我的年龄是{y}'
print(res)
四、运算符
(一)基本运算符
print(10/3) #结果带小数
print(10//3) #只保留整数部分
print(10%3) #取模、取余数
print(10**3) #10的三次方
!= 不相等
age+=1 即 age=age+1
交叉赋值:
m=10
n=20
m,n=n,m
print(m,n)
结果:m=20 n=10
链式赋值:
x=y=z=10
解压赋值
salaries=[111,222,333,444,666]
mon0,mon1,mon2,mon3,mon4=salaries
x,y,z,*_=salaries #取列表里前三个数值
print(x,y,z)
结果:111,222,333
*_,x,y,z=salaries #取列表里最后三个数值
print(x,y,z)
结果:333,444,666
ps:引入*,可以帮助我们取列表两头的值,但无法取中间的值。
(二)逻辑运算符
优先级从高往低:not > and > or
(三)成员运算符 in
print("Emery" in "hello Emery")
(四)身份运算符 is