整型与浮点型;进制转换;字符串类型;列表类型;
一、整型(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'] '''