一、整型(int)
用途:用于存放qq号,手机号,不带字母的身份证号。
定义方式: age=18 # age=int(18)
#int(‘dfdgf’)返回结果会报错,或者 #int(34.6)返回结果也是报错
所以,int只能转换纯数字的字符串,英文字母和带小数点的都不行。
进制转换:
其它进制转换十进制:
1)二进制转换十进制:
10=1*(2**1)+0*(2**0)=2
2)八进制转十进制:
235=2*(8**2)+3*(8**1)+5*(8**0)=157
3)十六进制转十进制(0-9,A-F):
217=2*(16**2) + 1*(16**1) + 7*(16**0)
print(int('1100',2)) # int可以传第一个参数,表示的是第一个参数到底是什么进制 然后转成十进制
print(int('14',8))
print(int('c',16))
十进制转其它进制:
用除法,原数除以其它进制数,即是:十进制数转换十六进制就是除以16,转换成二进制数就是除以2等。
那么比如十进制数12转换成二进制就是'1100'
# 10进制转其他进制
# 10进制转二进制
# print(bin(12)) # 0b1100 0b表示后面的数字是二进制数
# 10进制转八进制
# print(oct(12)) # 0o14 0o表示后面的数字是八进制数 14 >>> 1*(8**1) + 4*(8**0))
# 10进制转16进制
# print(hex(12)) # 0xc 0x表示后面的数字是十六进制数
总结:整型就一个值,不存在有序或者无序,属于不可变类型,但凡有索引的数据都是有序的,比如说:列表
浮点型(float)
作用:薪资 身高 体重
salary = 1.1 # float(1.1)
res = float('1.11')
print(type(res))
浮点型数字的字符串,float能够识别出其中的小数点,并能将其转化为float类型。
可变类型:值改变的情况下,id不变,说明改的是原值
不可变类型:值改变的情况下,id一定变,改的不是原值,而是重新申请一片内存空间给新值。
二、字符串
1.用途:描述性质的东西,如人的名字、单个爱好、地址、国家等
2.定义:使用''、""、''''''、""""""包裹的的一串字符
- u'unicode': unicode编码的字符串
- b'101': 二进制编码的字符串
- r'\n': 原生字符串,也就是说'\n'这是普通的两个字符,并没有换行的意思
3、书写方式:
1).s = 'hello baby' # str('hello baby')
2).s1 = str([1,2,3,4])
4、特点:
1). 一个字符串代表一个值
2). 有序可以按照索引取值)
3). 不可变数据类型
str_1='zhang'
print(id(str_1))
str_1='zhang chao'
print(id(str_1))
'''
41646376
167777520
'''
常用内置方法:
1、按索引取值(只可取不可改变)
# str索引取值
msg = 'hi zhang'
# 01234567 # 索引序号
print(f'索引为6: {msg[6]}')
print(f'索引为-3: {msg[-3]}')
'''
索引为6:n
索引为-3:a
'''
2、切片(顾头不顾尾,步长)
# 索引切片
msg = 'hello zhang'
print(f'切片3-最后: {msg[3:]}')
print(f'切片3-8: {msg[3:8]}')
print(f'切片3-8,步长为2: {msg[3:8:2]}')
print(f'切片3-最后,步长为2: {msg[3::2]}')
# 了解,步长为正从左到右;步长为负从右到左
print('\n**了解知识点**')
print(f'切片所有: {msg[:]}')
print(f'反转所有: {msg[::-1]}')
print(f'切片-5--2: {msg[-5:-2:1]}')
print(f'切片-2--5: {msg[-2:-5:-1]}')
'''
切片3-最后: lo zhang
切片3-8: lo zh
切片3-8,步长为2: l h
切片3-最后,步长为2: l hn
**了解知识点**
切片所有: hello zhang
反转所有: gnahz olleh
切片-5--2: zha
切片-2--5: nah
3、成员运算in、not in
# str成员运算
msg = 'my name is Li, Li handsome'
print(f"'Li' in msg: {'Li' in msg}")
print(f"'zhang' not in msg: {'zhang' not in msg}")
print(f"not 'zhang' in msg: {not 'zhang' in msg}")
'''
'Li' in msg: True
'zhang' not in msg: True
not 'zhang' in msg: True
'''
4、strip 移除空白
s=' zhang '
# 不指定要删除的字符默认移除空白
print(s.strip())
s1='**&na**me:*****'
'''
# 指定字符必须从字符串外部往里面删除,无法跳跃删除字符
写在strip括号内部多个要移除的字符可以无顺序
'''
print(s1.strip('*&'))
'''
zhang
na**me:
'''
5、切分split 和 拼接join
info = 'Li:male:19'
info_list1 = info.split(':')
info_list2 = info.split(':', 1) # 按照‘:’切分,只切一次
str_info='|'.join(info_list1) # 用|对切分的列表进行拼接
print(f'info_list1:{info_list1}')
print(f'info_list2:{info_list2}')
print(f'info_list3:{str_info}',type(str_info))
'''
zhang
na**me:
info_list1:['Li', 'male', '19']
info_list2:['Li', 'male:19']
info_list3:Li|male|19 <class 'str'>
'''
6、循环
msg = 'hello Li'
for i in msg:
print(i)
'''
h
e
l
l
o
n
i
c
k
'''
7、lstrip&rstrip
# str之lstrip()和rstrip()
name = '&&Li&&'
print(f"Li.lstrip('&'): {name.lstrip('&')}")
print(f"Li.rstrip('&'): {name.rstrip('&')}")
'''
Li.lstrip('&'): Li&&
Li.rstrip('&'): &&Li
'''
8、lower&upper
# str之lower()和upper()
name = 'Li Chen'
print(f"name.upper(): {name.lower()}")
print(f"name.upper(): {name.upper()}")
'''
name.upper(): Li chen
name.upper(): Li CHEN
'''
9、startwith&endwith
# str之startswith()和endswith()
name = 'Li Chen'
print(f"name.startswith('Li'): {name.startswith('Li')}")
print(f"name.endswith('chen'): {name.endswith('chen')}")
'''
name.startswith('Li'): True
name.endswith('chen'): False
'''
10、rsplit
# str之rsplit()
info = 'Li:male:19'
print(f"info.rsplit(':', 1): {info.rsplit(':', 1)}") # 从右开始切割
'''
info.rsplit(':', 1): ['Li:male', '19']
'''
11、replace() 括号内部两个参数:参数1,old;参数2,new;
# str值replace()
name = 'Li shuai'
print(f"name.replace('shuai','handsome'): {name.replace('shuai','handsome')}")
'''
name.replace('shuai','handsome'): Li handsome
'''
12、isdigit
# str值isdigit()
salary = '111'
print(salary.isdigit()) # True
salary = '111.1'
print(salary.isdigit()) # False
'''
True
False
'''
13、find|rfind|index|rindex|count
str_1='zhang is handsome,very handsome!'
print(str_1.find('is'))
print(str_1.find('is',2,5)) # 找不到返回-1
print(str_1.rfind('is'))
print(str_1.index('is'))
#print(str_1.index('is',2,5)) # 找不到会报错
print(str_1.rindex('very')) # 找不到会报错
print(str_1.count('handsome'))
'''
6
-1
6
6
18
2
'''
14、center|ljust|rjust|zfill
str_1='zhang is handsome,very handsome!'
# 按照指定的字符个数填充,不够个数,填充到指定的字符个数
print(str_1.center(50,'='),f"str_len:{len(str_1.center(50,'='))}")
print(str_1.ljust(80,'*')) # 字符串左对齐
print(str_1.rjust(80,"*")) # 字符串右对齐
print(str_1.zfill(50)) # 用0填充
'''
=========zhang is handsome,very handsome!========= str_len:50
zhang is handsome,very handsome!************************************************
************************************************zhang is handsome,very handsome!
000000000000000000zhang is handsome,very handsome!
'''
15、captalize|swapcase|title
# str之captalize()、swapcase()、title()
name = 'Li handsome sWAPCASE'
print(f"name.capitalize(): {name.capitalize()}")
print(f"name.swapcase(): {name.swapcase()}") # 大小写互转
print(f"name.title(): {name.title()}")
'''
name.capitalize(): Li handsome swapcase
name.swapcase(): Li HANDSOME Swapcase
name.title(): Li Handsome Swapcase
'''
16、is 系列
- isalnum(): 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False。
- isalpha(): 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。
- islower(): 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False。
- isspace(): 如果字符串中只包含空白,则返回True,否则返回False
- isupper(): 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False。
- istitle(): 如果字符串是标题类型的(见title()),则返回True,否则返回False。
三、list 列表
定义:[]内可以有多个任意类型的值,逗号分隔
特点:有序(可以按索引取值),可变数据类型,可以存一个或者多个值
列表的三种书写规范:
1)my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
2)my_girl_friends=list([...])
3)l=list('abc')
list内部原理就是for循环取值 然后一个个塞到列表中去
1、按索引存取值(正向存取+反向存取):即可存也可以取
l=[1,2,3,4]
print(l[2]) # 取值
print(l[-1]) # 取值
l[0]=100 #存值
print(l)
'''
打印结果
3
4
[100, 2, 3, 4]
'''
2、split/ 切片(顾头不顾尾,步长)
l = [1,2,3,4]
print(l[0:4:1])
print(l[0::]) 表示从0位(列表第一个数)开始计数,索取全部列表值,不写步长,即步长为1
print(l[5::-1]) —1表示反向取值,步长为1,取出列表中全部值
3、长度 len
name_list = ['Li', 'zhang', 'wang', 'zhao']
print(f'"name_list":{len(name_list)}')
'''
打印结果
"name_list":4
'''
4、成员运算in和not in
1 # list之成员运算in和not in
2 name_list = ['Li', 'zhang', 'wang', 'zhao']
3
4 print(f"'wang sb' in name_list: {'wang sb' in name_list}")
5 print(f"'Li handsome' not in name_list: {'Li handsome' not in name_list}")
6
7 '''
8 打印结果
9 'wang sb' in name_list: False
10 'Li handsome' not in name_list: True
11 '''
5、追加值
# append (添加、追加)
# 1) 添加元素
l.append(66) # 元素被添加到列表的末尾
# 2).添加容器类型数据
l = [11,22,33,44,55]
l1 = [99,88,77,66]
l.append(l1)
6、删除(del、pop、remove、clear)
# del
l=[1,2,3,4]
del l[2] # 按索引删除元素
print(l)
del l # 将整个l容器删除
# print(l) # 会报错 name 'l' is not defined
# pop
name=['zhang','li','liu','lin']
name.pop(1) # 按索引删除元素
print(name)
'''
打印结果
['zhang', 'liu', 'lin']
注意:pop按索引删除元素,而remove直接删除单个元素
'''
# remove
l1=[11,22,33,44,55]
l1.remove(44) # 直接删除元素
print(l1)
'''
打印结果
[11, 22, 33, 55]
'''
# clear
l2=[11,22,33,44,55]
l2.clear() # 清除列表内的所有元素
print(l2) # 返回一个空列表
'''
打印结果
[]
注意del和clear的区别
'''
7、循环
# list之循环
name_list = ['Li', 'zhang', 'wang', 'zhao']
for name in name_list:
print(name)
'''
Li
zhang
wang
zhao
'''
8、insert(插入,按索引插入值)
1) 插入元素
l.insert(2,96) # 参数1:索引 参数2:值
2) 插入容器类型
1 name_list = ['Li', 'zhang', 'wang', 'zhao']
2 l1=[1,2,3]
3 name_list.insert(2,l1)
4 print(name_list)
5
6 '''
7 打印结果
8 ['Li', 'zhang', [1, 2, 3], 'wang', 'zhao']
9 '''
9、count
# count 计数
li=[11,22,33,22,45]
print(f'li:{li.count(22)}') # 按照元素查找元素的个数
'''
2
'''
10、index
# index 通过元素获取元素所对应的索引
l=['read','basketball','run','swim']
print(f"l.index('run'):{'run'}")
'''
l.index('run'):run
'''
11、extend # 内部原理for循环name_list2一个个元素,追加到列表name_list的尾部 ,即是将两个列表添加到同一个列表
# extend()
name_list = ['Li', 'zhang', 'wang', 'zhao']
name_list2 = ['Li handsome']
name_list.extend(name_list2)
print(f"name_list: {name_list}")
'''
name_list: ['Li', 'zhang', 'wang', 'zhao', 'Li handsome']
'''
12、reverse #反转列表
# list之reverse()
name_list = ['Li', 'zhang', 'wang', 'zhao']
name_list.reverse()
print(f"name_list: {name_list}")
'''
name_list: ['zhao', 'wang', 'zhang', 'Li']
'''
13、sort # 排序
# list之sort(),使用sort列表的元素必须是同类型的
name_list = ['Li', 'zhang', 'wang', 'zhao']
name_list.sort()
print(f"name_list: {name_list}")
name_list.sort(reverse=True)
print(f"name_list_reverse: {name_list}")
'''
name_list: ['zhang', 'Li', 'zhao', 'wang']
name_list_reverse: ['wang', 'zhao', 'Li', 'zhang']
'''