一、字符串
不可变类型 值变 id也变
str1 = 'abc'
print(str1.upper())
str2 = str1.lower()
print(str1)
print(str2)
print(id(str1)) #id为2175911121712
print(id(str2)) #id为2175911920752
(1)占位符 如%s %d
name = input(‘输入名字’)
print('My name is %s' %name)
age = int(input('输入年龄')) #''中输出的只能是字符串,所以套上int()表示整型
print('My age is %d' %age)
(2)字符串相加相乘
print('abcd'+'efg')
print('abcd'*10)
(3)切片
msg = 'hello world'
print(msg[0])
print(mag[4])
print(msg[0:5:2]) #每两步取一个
print(msg[-1]) #反向取最后一个
print(msg[::-1]) #反向取全部
(4)len
长度方法
msg = 'hello world'
print(len(msg))
(5)in和not in
成员运算方法
print('zhangxi' in 'zhangxi is a student')
print('xxx' ont in 'zhangxi is a student')
(6)增
1.增加
print('zhangxi'+'student')
2.format 方法
#0位置输出'zhangxi',1位置输出18
print('my name is {0}','my age is {1}.format('zhangxi',18)')
3.join方法
str1 = '真正的勇士'
str2 = '敢于直面惨淡的人生'
str3 = '敢于面对淋漓的鲜血'
list = [str1,str2,str3]
print(',',join(list)) #''中是什么就以什么分隔开
(7)删
1.del
name = 'zhangxi'
del name
print(name)
(8) 改
1.lower upper
字符串字母全部变大写或小写
msg = 'ABcdeF'
print(msg.lower()) #全部改为小写
print(msg.upper()) #全部改为大写
2.capitalize
把第一个字母转换成大写
letter = 'abcd'
print(letter.capitalize())
3.split
把字符串切分成列表
msg = 'hello world python'
print(msg.split())
msg1 = 'hello*world*python' #以*分隔
print(msg1.split('*'))
4.replace
替换
mag = 'zhangxiszz 你好'
print(msg.replace('z','b'))
5.strip
去掉字符串左右两边的字符
user = ' user '
print(user)
print(user.strip())
6. center, l just , r just
添加自己想要的字符
print('zhangxi'.center(11,'*'))
print('zhangxi'.l just(11),'*')
print('zhangxi'.r just(11),'*')
(9)查
1.find index
查找子字符串在大字符串的那个位置
msg = 'hello world python'
print(msg.find('hello'))
print(msg.find('xxx')) #没找到返回-1
print(msg.index('world'))
print(msg.index('xxx')) #没找到报错
2.count
统计一个子字符串在大字符串中出现的次数
msg = 'hello hello hello world world python'
print(msg.count('hello'))
3.isdigit
判断一个字符串里的数据是不是都是数字
msg = '18953'
msg1 = 'asf85445'
print(msg.isdigit(msg))
pring(msg.isdigit(msg1))
4.isalpha
判断每个元素是不是都是字母
msg = '4agsgg486'
msg1 = 'afgagbsg'
print(msg.isalpha(msg))
print(msg.isalpha(msg1))
5.startswith endswith
比较开头元素是否相同
比较结尾元素是否相同
n = 'zhangxi student'
print(n.startswith.(zhangxi))
print(n.endswith.(student))
6.islower isupper
判断字符串中的值是否全为小写
判断字符串中的值是否全为大写
letter1 = 'ABC'
letter2 = 'abc'
print(letter1.islower())
print(letter2.isupper())
(10) 反转义
1.\n \t
print('hello \n world') #\n换行符
print('hello \t world') #横向换行符 相当图一个tab键
2. r
print(r'hello \n world hello \t world')
二、数字型
不可变类型
age = 23
print(age)
print(id(age))
print(type(age)) #整型
weight = 100.8
print(weight)
print(type(weight)) #浮点型
(1)int 整型
记录年龄,等级,号码等
age = 18
print(age)
print(type(age))
(2) float 浮点型
记录身高,体重等
weight = 151.2
print(weight)
print(type(weight))
(3)赋值运算
普通赋值 =
加法赋值 +=
减法赋值 -=
乘法赋值 *=
除法赋值 /=
取余赋值 %=
乘方赋值 **=
地板除赋值 //=
#例:
n = 2
n = n+3
print(n)
##等价于
a =2
a +=3
print(a)
三、布尔类型
不可变类型
a = True
b = False
print(a)
print(id(a)) #id为140733041575760
print(b)
a = False
print(a)
print(id(a)) #id为140733041575792
(1)bool
不仅仅表示真假,还表示有无
所有的数据类型都自带布尔值
None 0 空(空字符串,空列表,空字典)三种情况下布尔值为False,其余全为True
tag = ''
print(type(tag)) #字符串型
print(bool(tag)) #False
tag1 = ' '
print(type(tag1)) #字符串型
print(bool(tag1)) #True
四、列表
可变类型
list = [1,2,3]
print(list)
print(id(list)) #id为2729665088128
list.append(4)
print(list)
print(id(list)) #id为2729665088128
(1)切片
[起始值:终止值:步长] 默认步长为1
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
print(L[0:3])
print(L[0:3:1])
print(L[0:3:2])
print(L[0:3:-1]) #取空列表
print(L[::-1]) #逆向全取
print(L[3:1:-1]) #逆向取3号和2号索引
(2)len
长度 列表元素的多少 指的是总数
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
print(len(L))
(3)in 和 not in
成员运算
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
print('zhangxi' in L)
print('xxx' ont in L)
(4)count
查看列表某个元素的个数
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
print(L.count(zhangxi1))
(5)index
在列表中从左至右查找指定元素,找到了返回该值的下标/索引
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
print(L.index('zhangxi1'))
(6)增
1.append
在列表末尾追加一个元素 在原值上修改
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
print(L.append('zhangxi0'))
print(L.append('zhangxi0')) #第二次放 列表中元素再次增加
2.extend
在列表末尾追加多个元素
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
print(L.extend('zhangxi0','zhangxi3'))
3.insert
往指定索引位置前加一个元素
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
print(L.insert(2,'zhangxi0'))
(7)删
1.del
索引删除
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
del L[1]
print(L)
2.remove
指定删除
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
print(L.remove('zhangxi1))
3.pop
pop是从列表里面拿走一个值 按照索引删除值 默认是删除最后一个
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
res1 = L.pop()
print(L)
print(res1) #此时返回值是最后一个元素
或是指定删除
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
res1 = L.pop(0)
print(L)
print(res1) #此时返回值是指定的索引元素
4.clear
清空列表
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
print(L.clear()) #返回空列表
(3)改
1.直接改
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
L[0] = 'zhangxi0'
print(L)
2.reverse
反序
L = ['zhangxi1',168,98,['zhangxi2',60,61]]
L.reverse()
print(L)
3.sort
排序 对数字而言的
list = [1,2,5,9,7,6]
list.sort() #括号里默认有参数为reverse=False
print(list) #不写默认为正序
list = [1,2,5,9,7,6]
list.sort(reverse=False) #此时为倒序
print(list)
五、元组
不可变类型
tuple = ['abc']
print(tuple)
print(id(tuple)) #id为2029408346496
tuple1 = [1,2,3]
print(tuple1)
print(id(tuple1)) #id为2029409076096
(1)切片
t = (1,2,'zhangxi',(1,2,'zhangxi'),[1,2,'zhangxi'])
print(t[0:5])
print(t[0:5:1])
print(t[0:5:2])
print(t[0:5:-1])
print(t[::-1])
print(t[4:1:-1])
(2)len
t = (1,2,'zhangxi',(1,2,'zhangxi'),[1,2,'zhangxi'])
print(len(t))
(3) in 和 not in
t = (1,2,'zhangxi',(1,2,'zhangxi'),[1,2,'zhangxi'])
print('zhangxi' in t)
print('xxx' not in t)
(4)count
t = (1,2,'zhangxi',(1,2,'zhangxi'),[1,2,'zhangxi'])
print(count('zhangxi'))
(5)index
t = (1,2,'zhangxi',(1,2,'zhangxi'),[1,2,'zhangxi'])
print(t.index('zhangxi'))
六、字典
可变类型
dict = {'name':'zhangxi','age':'23'}
print(dict)
print(id(dict)) #id为3084829986048
dict['addr'] = 'hebei'
print(dict)
print(id(dict)) #id为3084829986048
(1)len
键值对的个数
info = {'name':'zhangxi','age':'22'}
print(len(info))
(2)in 和 not in
成员运算判断的是key,结果返回布尔类型
info = {'name':'zhangxi','age':'22'}
print('name' in info)
print('hzangxi' not in info)
(3)增
直接赋予一个不存在的key和value 两次输出的原值相同
info = {'name':'zhangxi','age':'22'}
info['addr']='hebei'
print(info)
(4)删
1.clear
清空字典
info = {'name':'zhangxi','age':'22'}
info.clear()
print(info)
2.del
删除某一个键值对
info = {'name':'zhangxi','age':'22'}
del info['name']
print(info)
3.pop
返回值是value 实际上就是拿走了字典的value
info = {'name':'zhangxi','age':'22'}
res = info.pop('name')
print(info)
print(res)
4.popitem
默认删除最后一对键值对 字典无序
拿走的 返回的是一个元组
info = {'name':'zhangxi','age':'22'}
res = info.popitem()
print(info)
print(res)
(5)改
1.直接加
info = {'name':'zhangxi','age':'22'}
info['addr']='hebei'
print(info)
2.updata
info = {'name':'zhangxi','age':'22'}
info.update({'addr':'hebei'})
print(info)
3.setdefault
有则不动/返回原值,无则添加/返回原值
字典中已经存在key则不修改,返回已经存在的key对应的value
info = {'name':'zhangxi','age':'22'}
res = info.setdefault('name','xxx')
print(info)
print(res)
ress = info.setdefault('addr','hebei')
print(info)
print(ress)
(6)查
1.直接查
info = {'name':'zhangxi','age':'22'}
print(info['hebei']) #查不到会报错
2.get
info = {'name':'zhangxi','age':'22'}
print(info.get('hebei')) #没有key就返回None,不会报错
3.转换成列表
info = {'name':'zhangxi','age':'22'}
#取出所有的key
print(info.keys())
print(list(info.keys()))
#取出所有的value
print(info.values())
print(list(info.values))
#取出所有的键值对
print(info.items())
print(list(info.items()))
七、集合
可变类型
set = {1,2,3}
print(set)
print(id(set)) #id为2080172703520
set.add(4)
print(set)
print(id(set)) #id为2080172703520
(1)增
add 集合是可变类型 无序
s = {1,2,3}
print(s)
s.add('zhangxi')
print(s)
(2)删
1.pop
从第一个元素删除
s = {1,2,3}
print(s)
s.pop()
print(s)
2.remove
指定删除
s = {1,2,3}
print(s)
s.remove(1)
print(s)
(3)改
1.update
s={1,2,3}
s.update(['zhangxi1','zhangxi2'])
print(s)
2.set
s = {1,2,3}
s1 = list(s)
print(s1)
s1[0] = 7
print(s1)
s = set(s1)
print(s)
此外,set还可用来去重,但有一定的局限性
1.无法保证原数据类型的顺序
2.当某一个数据中包含的多个值全部为不可变类型时才能用集合去重
八、练习
names = ['zhangxi','zhangxi','zhangxi2','zhangxi3']
s = set(names)
print(s)
定义一个列表,列表中的元素有'安琪拉','妲己','韩信’,'典韦’,'吕布'五个元素,然后进行以下操作:
1.增加两个元素,"小乔’,’貂蝉”
2.查找'妲己’的索引(下标)
3.删除’韩信’
4.将最后一个元素修改为白起’
5.通过切片输出下标为偶数的元素
L = ['安琪拉','妲己','韩信','典韦','吕布']
L.extend(['小乔','貂蝉'])
print(L)
print(L.index('妲己'))
L.remove('韩信')
print(L)
L[5] = '白起'
print(L)
print(L[0:5:2])
运行结果:
# ['安琪拉', '妲己', '韩信', '典韦', '吕布', '小乔', '貂蝉']
# 1
# ['安琪拉', '妲己', '典韦', '吕布', '小乔', '貂蝉']
# ['安琪拉', '妲己', '典韦', '吕布', '小乔', '白起']
# ['安琪拉', '典韦', '小乔']
用户有这样的一条信息,姓名为翠花,年龄18岁,性别女,请定义一个字典包含了这些信息,然后进行一下操作
1.增加一个元素,地址为北京
2.将性别改为男
3.删除年龄
4.输出此字典
dic = {'name':'翠花','age':18,'sex':'女'}
dic['addr'] = '北京'
print(dic)
dic['sex'] = '男'
print(dic)
del dic['age']
print(dic)
print(dic.items())
print(list(dic.items()))
运行结果:
{'name': '翠花', 'age': 18, 'sex': '女', 'addr': '北京'}
{'name': '翠花', 'age': 18, 'sex': '男', 'addr': '北京'}
{'name': '翠花', 'sex': '男', 'addr': '北京'}
dict_items([('name', '翠花'), ('sex', '男'), ('addr', '北京')])
[('name', '翠花'), ('sex', '男'), ('addr', '北京')]