一、变量
1、什么是变量?
变:现实世界中的状态是会发生改变的。
量:衡量/记录现实世界中的状态。让计算机能够像人一样识别世间万物!
2、为什么要有变量?
程序的运行本质就是一些列状态的变化。
3、如何用变量?
定义变量:
# 定义变量:(变量名 赋值符号 变量值) name = 'zhangrenguo' age = 18
# 变量名:是用来引用变量值的,即但凡要用变量值都需要通过变量名。 # 赋值符号: # 变量值:即我们存放的数据,是用来衡量/记录世间万物的状态的。
变量名的定义规范: 1、变量名的定义应该能反映变量值所记录的状态,不要用中文的变量名。 2、变量名只能是字母、数字、下划线任意组合而成。 3、变量名的第一个字符不能是数字。 4、关键字不能声明为变量名。
变量名定义的两种风格:
1、下划线(针对变量名的定义风格推荐使用下划线):age_of_user = 26
2、驼峰体:AgeOfUser = 26
# 常量 强调:在Python中没有从语法意义上去强制定义常量。 如果需要定义常量,应该讲变量名全部改为大写。
二、python的内存管理
# Python的自动垃圾回收机制:一个值的引用计数为0 x=10 y=x x=11 print(x) # 11 print(y) # 10 del y #解除绑定 # Python的内置功能:id()用来查看变量在内存的id号,id用来反映变量值在内存中的位置的,内存地址不同则id不同。 # python的优化:短时间内用且数据值不大。但是随着值变长在Python2当中 x1 = "info:<name:zrg age:26>" y1 = "info:<name:zrg age:26>" print(id(x1)) print(id(y1))
#1 等号比较的是value, #2 is比较的是id #强调: #1. id相同,意味着type和value必定相同 #2. value相同type肯定相同,但id可能不同,如下 >>> x='Info Egon:18' >>> y='Info Egon:18' >>> id(x) 4376607152 >>> id(y) 4376607408 >>> >>> x == y True >>> x is y False
三、基本数据类型
1、什么是数据类型? 什么是数据?变量值才是我们存储的数据。所以数据类型指的就是变量值的不同种类。 2、为何数据要分类型? 变量值是用来保存世间万物不同状态的,针对不同状态就应该用不同的数据类型来表示。 3、如何用,即数据类型的分类
1、整型int:
作用:
定义:
如何用:
列表 list
list是个类,通过list创建对象,列表的特征:中括号括起来,逗号分隔每个元素。元素可以是数字,字符串,列表,字典,集合,元组,布尔值...所有的都能放进去。
通过索引取值
通过切片取值,取到的子元素也是个列表
支持for循环
支持while循环
列表创建出来列表元素支持被修改。
删除方法之一:del
删除方法之二:pop()删除的值可以获取到,默认删除最后一个值,可指定某个索引删除获取
删除方法之三:remove()删除列表的值,最左优先
支持成员运算 in not in
转换 字符串转换为列表,内部使用否循环
列表转换为字符串,需要自己写for循环一个一个处理,既有数字又有字符串。
直接用join方法前提是列表中的元素只有字符串。
list类中提供的方法:对象可以调用
append()追加到最后。
append()
clear()清空
copy()浅拷贝
count()计算元素出现的次数
extend(可迭代对象)扩展原来的列表
index()根据值查找索引只找到第一个值,可指定查找的起始位置
insert(哪个位置,值)在指定索引位置插入元素
pop()删除的值可以获取到,默认删除最后一个值,可指定某个索引删除获取
remove()删除列表的值,最左优先
sort(reverse=true)排序,从大到小排,从小到大排
cmp
key
sorted
像字符串类型一样,列表类型也是序列式的数据类型,可以通过下标或者切片操作来访问某一个或者某一块连续的元素。然而,相同的方面也就这些,字符串只能由字符组成,而且是不可变的(不能单独改变它的某个值),而列表则是能保留任意数目的Python对象的灵活的容器。就像我们将要看到的列子中所示,创建列表非常简单,向列表
元组 tuple 是对列表的二次加工,元素不可被修改,不能被增加或者删除。
括号括起来,最后多加一个逗号
通过索引取值
通过切片取值
for循环
while循环
转换:
字符串转换为元组
列表转换成元组
元组转换为列表
元组转换为字符串
元组也是有序的,元组的一级元素不可修改
数据类型+内置方法
1什么是数据
2为什么要存数据?数据为什么要分类
3数据类型
1什么是数据
X=10 10就是我们要存的数据
2为什么要存数据?数据为什么要分类
数据是用来表示事物状态的,不用的事物状态需要用不同类型的数据来表示
3数据类型
整型、浮点型、字符串型、列表型、字典型、布尔型
整型int
作用:用来表示年龄、分数、等级、、、、
定义:age=18 age=int(18)
常规操作:算数运算,比较运算
该类型总结:
只能存一个值
没有有序和无序的说法
是不可变类型数据
浮点型float
作用:用来表示薪资、身高、体重、、、、
定义:
Salary=3.1 salary=float(3.1)
常规操作:
算术运算,比较运算
该类型总结:
只能存一个值
没有有序和无序的说法
是不可变类型数据
字符串类型 str
作用:用来描述姓名、国籍、地址、
定义:在单引号,双引号或者三引号内的一串字符
name=’egon’
常规操作:
优先掌握的操作
-
按索引取值(正向取+反向取):只能取
name= “egon” 索引以0开始
Print(name[1])
Print(name[-1])
-
切片(顾头不顾尾,步长)[:]
name=‘egon’
Print(name[0:2])
Print(name[:2])
Print(name[1:])
Print(name[:])
用一个冒号隔开两个索引值,左边是开始位置,右边是结束位置。结束位置上的字符是不包含的。
如果没有开始位置,python会默认开始位置是0,如果没有放入任何索引值,而只有一个冒号,就会得到整个字符串里的字符。
msg=‘hello world’
msg[1:5;2] = ello eo
倒向切片
print(name[::-1])
msg='hello world'
print(msg[:-6:-1])
dlrow
print(msg[:-6:-2])
drw
-
长度len
msg='hello world'
print(len(msg))
11
-
成员运算in和not in
子字符in 大字符串
msg='hello world'
print('h'in msg)
True
j not in 和 not j in 是一个意思
-
移除空白strip 删除字符串左右两边所有的空格
name = ' e gon '
print(name.strip())
e gon
变量名.strip(‘-’) ‘-”可以是任意字符
Lestrip(‘ ’) 去掉字符左边所有空格
Restrip(‘ ’) 去掉字符右边所有空格
-
切分split.()
msg='my name is egon'
x=msg.split(' ') 或print(msg.split(' '))
print(x)
结果['my', 'name', 'is', 'egon']
默认以空格为分隔符切片字符串,然后拼接成列表,也可以用在字符串里的字符为分隔符
print(msg.split('e'))
结果:['my nam', ' is ', 'gon']
也可以来选择从左到右切几次
print(msg.split(' ',2))
结果:['my', 'name', 'is egon']
7、循环
msg='my name is egon'
for i in msg:
print(i)
需要掌握的操作
-
Strip 删除字符串左右两边所有的空格
lestrip删除字符串左边所有的空格
name='*******%%%egon $$$$$$$'
print(name.lstrip('*'))
结果:%%%egon $$$$$$$
restrip删除字符串右边所有的空格
name='*******%%%egon $$$$$$$'
print(name.rstrip('$'))
结果:*******%%%egon
-
Lower:转换字符串中所有大写字符为小写
msg= 'I love MY GirlFriend'
print(msg.lower())
结果:i love my girlfriend
-
Upper:转换字符串中所有小写字符为大写
print(msg.upper())
结果:I LOVE MY GIRLFRIEND
4、
startswith
startswith:print('my name is egon'.startswith('my'))
Endstartwith
Endswith:print('my name is egon'.endswith('n'))
5
formate的三种用法:
Formate()方法接受位置参数和关键字参数,二者均传递到一个叫做replacement字段。而这个replacement字段在字符串内有大括号{}表示。
字符串中的{0}{1}{2}依次被formate()中的三个参数替换。
msg='{0} love {1}一生一世 {2}'.format('i','you','哈哈')
print(msg)
结果:i love you一生一世 哈哈
{a}{b}就相当于三个标签,formate()讲参数中等值的字符串替换进去
info='my name is {a} and my age is {b}'.format(a='egon',b=18)
print(info)
结果:my name is egon and my age is 18
msg='{} love {}一生一世 {}'.format('i','you','哈哈')
print(msg)
结果:i love you一生一世 哈哈
6、Split 拆分
info = 'egon:18:male'
print(info.split(':')) print(info.split(':',1))
结果:['egon', '18', 'male'] 结果:['egon', '18:male']
Resplit 从右往左拆分
print(info.rsplit(':',1))
结果:['egon:18', 'male']
-
Join
info = 'egon:18:male'
i=info.split(':')
new_info=':'.join(i)
print(new_info)
print('.'.join(['egon','say','hello']))
-
Replace
msg='my name is wupeiqi'
print(msg.replace('wupeiqi','pig',1))
-
Isdigit
msg='11111111111'
print(msg.isdigit())
列表list
作用:
用来存放多个值,多个爱好,多个人名
定义:定义在[]中括号内,用逗号分隔开多个值,值可以是任意类型
stu_names=[‘egon’,’alex’,’wsb’,’ksb’]
基本操作:
-
按索引存取值(正向+反向存取):即可存也可取
stu_names=['egon','alex','wsb','ksb',]
print(stu_names[1])
stu_names=['egon','alex','wsb','ksb',]
print(stu_names[-1])
-
切片(顾头不顾尾,步长)
stu_names=['egon','alex','wsb','ksb',]
print(stu_names[:3])
stu_names=['egon','alex','wsb','ksb',]
print(stu_names[:3:2])
-
长度len
stu_names=['egon','alex','wsb','ksb',]
print(len(stu_names))
-
成员运算in not in
stu_names=['egon','alex','wsb','ksb',]
print('egon'in stu_names)
-
追加append
stu_names=['egon','alex','wsb','ksb',]
stu_names.append('zrg')
print(stu_names)
-
删除del
stu_names=['egon','alex','wsb','ksb',]
del stu_names[2]
print(stu_names)
-
循环
stu_names=['egon','alex','wsb','ksb',]
for i in stu_names:
print(i)
-
Insert(随意位置添加)
names=['egon','alex','wsb','ksb',]
names.insert(2,'sb')
print(names)
Remove(按元素的值删除,没有返回值
names=['egon','alex','wsb','ksb',]
names.remove('egon')
print(names)
Pop(按索引删除,有返回值)
names=['egon','alex','wsb','ksb',]
names.pop(0)
print(names)
Count(统计有几个)
names=['egon','alex','wsb','ksb',]
print(names.count('alex'))
Clear(清空)
names=['egon','alex','wsb','ksb',]
names.clear()
print(names)
Index(查索引)
names=['egon','alex','wsb','ksb',]
print(names.index('alex'))
Copy
names=['egon','alex','wsb','ksb',]
x=names.copy()
print(x)
Extend
names=['egon','alex','wsb','ksb',]
names.extend(['1','0','8'])
print(names)
Revers倒序
names=['egon','alex','wsb','ksb',]
names.reverse()
print(names)
Sort 排序
info = [9,67,34,99,3,-6]
info.sort()
print(info)