可变不可变类型
1、可变类型:值改变,但id不变,证明就是在改变原值是可变类型。
2、不可变类型:值改变,但id也随着改变,证明是产生了新的值,是不可变类型。
数字类型:
一、整型int 不可变 存一个值
1、用途:记录年龄、等级、数量
2、定义方式:age=10 #age=int(10)
数据类型转换:只能将纯数字的字符串转成int
3、常用操作+内置方法:+、-、*、/等运算
二、浮点型float 不可变 存一个值
1、用途:记录身高、体重、薪资
2、定义方式:salary=10.1 # salary=float(10.1)
数据类型转换:只能将包含小数的字符串转成float
3、 常用操作+内置方法:+、-、*、/等运算
该类型总结:只能存一个值
不可变
二、字符串类型
1、用途:记录描述性质的状态
2、定义方式:在单引号、双引号、三引号内包含一些字符串
msg=‘hello’ #msg=str(‘hello’)
数据类型转换:所有类型都可以被转换成字符串类型
res=str([1,2,3])
print(res,type(res))
3、常用方法及内置操作
优先掌握的操作(*****)
3.1 按索引取值(正向取+反向取)只能取
msg='hello'
print(msg[0],type(msg)) h <class 'str'>
print(msg[-1]) o
print(msg[-2]) l
反向取值从-1开始
3.2 切片(顾头不顾尾,步长) (如果不指定开始位置,默认从0开始,不指定步长,默认步长为1,反向时以-1开始)
msg='hello wolrd'
res=msg[0:3:1]
print(res) hel
res=msg[:]
print(res) hello world
res=msg[-1:-12:-1]
print(res) drlow olleh
res=msg[-1::-1]
print(res) drlow olleh
res=msg[::-1]
print(res) drlow olleh
3.3 长度len
msg='hello wolrd'
print(len(msg)) 11
3.4 成员运算in和not in
msg='xxx is dsb'
print('xxx ' in msg) True
print('sss' not in msg) True
print(not 'sss' in msg) True
3.5 移除空白strip:用来去除字符串左右两边的字符,不指定去除的字符,则默认去除空格
msg=' hello'
res=msg.strip()
print(res,id(res)) hello 2498590286600
msg=' hello'
print(msg,id(msg)) hello 2802074587376
print('***egon***'.strip('*')) egon
print('***eg**on***'.strip('*')) eg**on
print('**+-/*egon#$**'.strip('*+-/#$')) egon
name=input('username>>>: ').strip()
pwd=input('password>>>: ').strip()
if name=='egon' and pwd=='123':
print('login successful')
else:
print('输错了。。。')
3.6 切分split:针对有规律的字符串,按照某种分隔符切成列表 split()默认空格
info='egon:18:male'
res=info.split(':')
print(res[0],res[1]) egon 18
split(‘:’,1) 前面为拆分依据,后面为拆分次数
3.7循环
for item in 'hello': 或:s='hello'
print(item) i=0
while i<len(s):
print(s[i])
i+=1
结果:h
e
l
l
o
需要掌握的操作:
1.strip、lstrip、rstrip
lstrip:移除左边的字符
rstrip:移除右边的字符
2.lower、upper
lower:把小写字母转化为大写
upper:把大写字母转化为小写
3.startswith、endswith返回值为bool类型
startswith:判断字符串是否以()内的开头
endswith:判断字符串是否以()内的开头
4.format的三种玩法 占位与实际数据要进行个数与位置的匹配
res=‘my name is {name} my age is {age}’.format(age=18,name='egon')
res=‘my name is {} my age is {}’.format('egon',18)
res=‘my name is {0}{1} my age is {1}{1}{1}{1}’.format('egon',18)
指定位置要数据{0}要0号位数据
5.split、rsplit
rsplit:从右开始切分
6.replace
replace(旧值,新值,替换个数)
msg=‘Kevin is Kevin is hhhh’
res=msg。replace(‘Kevin’,sb,1) sb is Kevin is hhhh
7.isdight 如果字符串是由纯数字组成的,则返回True
print(‘123123’.isdight()) True
print(‘123123 ’.isdight()) Fales
了解的操作
1、find、rfind、index、rindex、count
find/rfind:查找子字符串的索引,无结果返回-1
s1='abcabc'
print(s1.rfind('ab')) 返回第一次查询到的(目标字符串首位)正向索引
index/rindex:查找子字符串索引,无结果抛出异常
count:计算子字符串的个数
2.center、ljust、rjust、zfill
语法:center(所占位数,‘填充符号’)
使用:调用者.center
3.captalize:首字母大写
swapcase:大小写反转
title:单词首字母大写
4.is数字系列
isdight:判断是否可以转换为数字
isdecimal:阿拉伯数字组成的字符串
isnumeric:阿拉伯数字、中文、罗马组成的字符串
5.is其他
isalnum:是否由数字组成
isalpha:是否由纯字母组成
isidentifier:是否为合法字符
islower/isupper:是否为全大/小写
istitle:是否单词首字母大写
该类型总结:只能存放一个值
有序
不可变
列表类型
为可变类型:在id不变的情况下,还可以修改内部数据
基本使用
1.用途:按照位置记录多个值,索引对应值
2.定义方式:在[]内用逗号分隔开多个任意类型的值
l=['a',11,11.3]
l=list(['a',11,11.3])
数据类型转换:单反能够被for循环遍历的数据类型都可以传给list被转成列表
res=list('hello') ['h', 'e', 'l', 'l', 'o']
res=list(123) 报错,整型不能被for循环遍历
print(list)
字符串<=>列表
将字符串转换为列表:字符串方法
l='helllo world'.split()
print(l) ['helllo', 'world']
将列表转换为字符串:字符串方法,调用方法的字符串为拼接字符串的依据
将列表中的所有数据,从前往后,安装拼接符进行拼接
['helllo', 'world']
newStr=‘@’.join(l)
print(newStr) hello@world
3.常用操作及内置方法
优先掌握的操作:
3.1 按索引取值(正向存取+加反向存取):既可以存也可以取
l=['a','b','c','d','e']
print(l[0]) a
print(l[-1]) e
l[0]='A'
print(id(l)) id不变
强调强调强调!!!:对于不存在的索引会报错,但字典不会报错,会把不存在的加到原字典中
3.2 切片(顾头不顾尾,步长)
用法与字符串同
3.3 长度(len)
3.4 成员运算 in和not in
3.5 追加与insert
append:只能在末尾加
insert:可以指定位置加
3.6 删除
del是一种删除操作,没有返回值
remove指定要删除的那个元素,没有返回值
pop指定要删除的那个元素的索引,返回刚刚删除的那个元素
3.7 循环
l=['a','b','c','d','e']
for item in l:
print(l)
队列:先进先出
堆栈:先进后出
3.8 其他
reverse:倒序
sort:排序
只有在列表中所有元素都是同类型的情况下才能用sort排序
该类型总结:
1.列表可以存放多个值
2.列表为可变类型:id不变的情况下,可以发生值改变
3.列表为有序存储结构:可以通过索引取值