定义方法:
? age = 18 <=====> age = int(18)
height = 1.87 <=====> height = float(1.87)
类型转换:
整形
类型转换
print(int(‘123‘)) 123
print(int(‘lyh‘)) ValueError: invalid literal for int() with base 10: ‘lyh‘
print(int(‘11.2‘)) ValueError: invalid literal for int() with base 10: ‘11.2‘
print(int(12.3)) 12
print(int(‘[1,2,3]‘)) ValueError: invalid literal for int() with base 10: ‘[1,2,3]‘
print(int({‘name‘:‘lyh‘}))TypeError: int() argument must be a string, a bytes-like object or a number, not ‘dict‘
‘‘‘
可以让int转换的只能是纯数字,不能是字符串(不能带引号),如果是浮点数,去掉小数点后面的
‘‘‘
进制转换
print(bin(100)) #十进制转换成二进制
print(oct(100)) #十进制转换成八进制
print(hex(100)) #十进制转换成十六进制
=====>
0b1100100
0o144
0x64
‘‘‘
0b开头: 二进制
0o开头:八进制
0x开头:十六进制
‘‘‘
二,八,十六,进制转换成十进制
print(int(‘0b1100100‘,2))
print(int(‘0o144‘,8))
print(int(‘0x64‘,16))
====>
100
100
100
‘‘‘
二,八,十六,进制转换成十进制,直接int(几进制得到的数字,几进制)
‘‘‘
浮点数
print(float(123))
print(float(‘123‘))
print(float(‘123.1‘))
====>
123.0
123.0
123.1
‘‘‘
float类型转换,里面也只能是纯数字,整形加零
‘‘‘
name = ‘lyh‘ <=====> str(‘lyh‘)
定义:
? 单引号,双引号,三引号,引起来的一串字符
取值(按索引取值)
>>> name = ‘Welcome to old boy Shanghai school‘
>>> name[0]
‘W‘
>>> name[-2]
‘o‘
‘‘‘
字符串按索引取值只能取,不能进行其他操作,索引从0开始,正数表示从左往右取,负数表示从右往左取
‘‘‘
切片(表示截取某一段内容)
>>> name = ‘Welcome to old boy Shanghai school‘
>>> name[1:20]
‘elcome to old boy S‘
>>> name[1:20:4]
‘emody‘
>>> name[-1:-20:-1]
‘loohcs iahgnahS yob‘
‘‘‘
字符串[开始索引:结束索引:步长]
顾头不顾尾
默认的切片都是从左往右,如果步长为-1,则从右往左切(可以用来取反)
步长即间隔几个取一个
‘‘‘
长度计算(len)
>>> name = ‘Welcome to old boy Shanghai school‘
>>> len(name)
34
‘‘‘
注意:空格和符号也算一个字符
‘‘‘
成员运算(in , not in)
>>> name = ‘Welcome to old boy Shanghai school‘
>>> ‘to‘ in name
True
>>> ‘old‘ not in name
False
移除空白(strip)
>>> a = ‘ lyh ‘
>>> a.strip()
‘lyh‘
>>> a = ‘$$lyh$$‘
>>> a.strip(‘$‘)
‘lyh‘
‘‘‘
strip(‘指定的字符‘)
strip默认移除的是**首尾**的所有空白字符
当然也可以指定移除的字符(指名道姓)
‘‘‘
>>> a= ‘##lyh##‘
>>> a.rstrip(‘#‘)
‘##lyh‘
‘‘‘
rstrip(‘指定的字符‘),移除右边
‘‘‘
>>> a= ‘##lyh##‘
>>> a.lstrip(‘#‘)
‘lyh##‘
‘‘‘
lstrip(‘指定的字符‘),移除左边
‘‘‘
切分(sqplit)
>>> a = ‘lyh|cmx|egon‘
>>> a.split(‘|‘)
[‘lyh‘, ‘cmx‘, ‘egon‘]
‘‘‘
split:默认是按照空格切分,也可以按照指定符号切分,切分得到一个列表,指定切分的字符不保留
‘‘‘
>>> a.split(‘|‘,maxsplit=1)
[‘lyh‘, ‘cmx|egon|‘]
‘‘‘
split(指定字符,maxsplit=切割几次)
默认是从左往右切分
‘‘‘
>>> a.rsplit(‘|‘,maxsplit=1)
[‘lyh|cmx‘, ‘egon‘]
‘‘‘
replit:从右往左切
‘‘‘
循环
name = ‘Welcome to old boy Shanghai school‘
for i in name:
print(i)
类型转换
print(type(str(18)))
print(type(str(11.11)))
print(type(str(‘hello‘)))
print(type(str([1,2,3,4])))
print(type(str({‘name‘:‘lyh‘})))
print(type(str(True)))
‘‘‘
以上结果都是str类型
‘‘‘
大小写转换
#将所有英文字母转换成小写
>>> a = ‘Welcome TO SHANGHAI‘
>>> a.lower()
‘welcome to shanghai‘
#将所有英文字母转换成大写
>>> a = ‘Welcome TO SHANGHAI‘
>>> a.upper()
‘WELCOME TO SHANGHAI‘
#将所有英文字母的首字母转换成大写
>>> a = ‘my name is lyh‘
>>> a.title()
‘My Name Is Lyh‘
#将字符串第一个单词的首字母转换成大写后,后面的都是小写
>>> a = ‘my name is lyh‘
>>> a.capitalize()
‘My name is lyh‘
#判断所有英文字母是不是以大写英文字母开头
>>> b = ‘My Name Is Lyh‘
>>> b.istitle()
True
#判断字符串内部所有的英文字母是不是大写
>>> a =‘MY NAME IS LL‘
>>> a.isupper()
True
#判断字符串内所有的英文字母是不是小写
>>> a =‘MY NAME IS LL‘
>>> a.islower()
False
例:
‘‘‘
需求:
针对图片验证码,忽略大小写
‘‘‘
code = ‘Qw7asAS‘
my_code = input(‘输入我的验证码>>>‘).strip()
if code.upper() == my_code.upper():
print(‘验证成功‘)
else:
print(‘验证失败‘)
判断以什么开头,以什么结尾
#判断以什么开头
>>> name = ‘Welcome to old boy Shanghai school‘
>>> name.startswith(‘Welcome‘)
True
#判断以什么结尾
>>> name = ‘Welcome to old boy Shanghai school‘
>>> name.endswith(‘school‘)
True
format三种玩法
#第一种 与%s一样,按照位置传值
name = ‘lyh‘
age = 18
print(‘my name is {} my age is {}‘.format(name,age))
#第二种 按照索引取值,可以反复使用
print(‘my name is {0} my age is {1} {1} {0}‘.format(‘lyh‘, 18))
#第三种 指名道姓取值,可以反复使用
print(‘my name is {name} my age is {age} {name} {age}‘.format(name = ‘lyh‘, age = 18))
统计字符(count)
#统计一个字符串中,指定字符出现的次数
>>> res = ‘qweru qwrety asf yyey eyey eyery eyeqqqyuqw‘
>>> res.count(‘e‘)
9
>>> res = ‘qweru qwrety asf yyey eyey eyery eyeqqqyuqw‘
>>> res.count(‘eyey‘)
1
>>> res = ‘qweru qwrety asf yyey eyey eyery eyeqqqyuqw‘
>>> res.count(‘e‘,0,10)
1
>>> res.count(‘e‘,0,20)
2
‘‘‘
count(‘指定字符‘,开始位置,结束位置)
默认是整个字符串
‘‘‘
#判断非数字 特殊符号
>>> res = ‘sdewqe圣12诞节卡萨‘
>>> res.isalpha()
False
#判断是否纯数字
>>> res = ‘124‘
>>> res.isdigit()
True
替换->replace
>>> res = ‘huangrenjin is dsb dsb dsb‘
>>> res.replace(‘dsb‘,‘dxx‘)
‘huangrenjin is dxx dxx dxx‘
>>> res = ‘huangrenjin is dsb dsb dsb‘
>>> res.replace(‘dsb‘,‘dxx‘,1)
‘huangrenjin is dxx dsb dsb‘
‘‘‘
replace(‘旧的字符串‘,‘新的字符串‘,替换几次(默认是1))
‘‘‘
拼接->join
>>> res = [‘lyh‘,‘cmx‘,‘hrj‘,‘leh‘]
>>> ‘|‘.join(res)
‘lyh|cmx|hrj|leh‘
‘‘‘
注意,拼接的时候只能拼接字符串,不能是其他类型
用什么拼接.join(列表)
‘‘‘
用 [] 括起来的叫列表,元素可以是任意类型
name_list = list([‘apple‘,‘banner‘,‘map‘,‘hrj‘])
类型转换
print(type(list(18))) TypeError: ‘int‘ object is not iterable
print(type(list(‘lyh‘))) <class ‘list‘>
print(type(list(11.2))) TypeError: ‘float‘ object is not iterable
print(type(list({‘name‘:‘lyh‘}))) <class ‘list‘> [‘name‘]
print(type(list(True))) TypeError: ‘bool‘ object is not iterable
‘‘‘
只要是可迭代对象,可以支持for循环的都可以转换成list
注意》字典参与类型转换时,只要有key值参与
‘‘‘
取值(按索引取)
>>> res = [‘lyh‘,‘cmx‘,‘hrj‘,‘leh‘]
>>> res[1]
‘cmx‘
>>> res[-1]
‘leh‘
切片
>>> l = [1,2,3,4,5,6,7,8,9,11,12]
>>> l[1:7]
[2, 3, 4, 5, 6, 7]
>>> l[1:8:2]
[2, 4, 6, 8]
>>> l[-1:-8:-1]
[12, 11, 9, 8, 7, 6, 5]
>>> l[-1:-8:-2]
[12, 9, 7, 5]
‘‘‘
列表的切片同字符串一样
list[初始索引:结束索引:步长]
默认从左往右切,如果步长改为-1则从右往左切
‘‘‘
长度计算(len)
>>> l = [1,2,3,4,5,6,7,8,9,11,12]
>>> len(l)
11
增删改查(CURD)
#修改
>>> l = [1,2,3,4,5,6,7,8,9,11,12]
>>> l[1] = ‘lyh‘
>>> l
[1, ‘lyh‘, 3, 4, 5, 6, 7, 8, 9, 11, 12]
#末尾追加
>>> l = [1,2,3,4,5,6,7,8,9,11,12]
>>> l.append(‘lyh‘)
>>> l
[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, ‘lyh‘]
‘‘‘
注意,末尾追加的元素,都会被列表当成一个整体
‘‘‘
#插入
>>> l = [1,2,3,4,5,6,7,8,9,11,12]
>>> l.insert(0,‘lyh‘)
>>> l
[‘lyh‘, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12]
‘‘‘
插入可以指定索引,按索引位置插入
‘‘‘
#扩展列表
>>> l = [1,2,3,4,5,6,7,8,9,11,12]
>>> l1 = [‘lyh‘,‘hrj‘]
>>> l.extend(l1)
>>> l
[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, ‘lyh‘, ‘hrj‘]
‘‘‘
这个方法,,等价于for + append
‘‘‘
#删除之del
>>> l1 = [‘lyh‘,‘hrj‘]
>>> del l1[1]
>>> l1
[‘lyh‘]
‘‘‘
del 列表[要删的值对应的索引]
‘‘‘
#删除之remove
>>> l1 = [‘lyh‘,‘hrj‘]
>>> l1.remove(‘hrj‘)
>>> l1
[‘lyh‘]
‘‘‘
列表.remove(‘元素‘)
‘‘‘
#删除之pop
>>> l1 = [‘lyh‘,‘hrj‘]
>>> res = l1.pop(1)
>>> l1
[‘lyh‘]
>>> res
‘hrj‘
‘‘‘
列表.pop(要弹出的索引)
pop和之前两个不同的是,之前两个直接pass掉,,pop把指定的值弹出来,是有返回值的
默认是从尾部弹出
‘‘‘
#清空列表
>>> l = [1,2,3,4,4,4,5,3,2,4,4,]
>>> l.clear()
>>> l
[]
count
统计列表中某个元素出现的次数
>>> l = [1,2,3,4,4,4,5,3,2,4,4,]
>>> l.count(3)
2
排序
>>> l = [1,3,5,2,6,8,4,12,56,34,55,98]
>>> l.sort()
>>> l
[1, 2, 3, 4, 5, 6, 8, 12, 34, 55, 56, 98]
>>> l = [1,3,5,2,6,8,4,12,56,34,55,98]
>>> l.sort(reverse = True)
>>> l
[98, 56, 55, 34, 12, 8, 6, 5, 4, 3, 2, 1]
‘‘‘
列表.sort()
默认是升序,reverse = True 则为降序
‘‘‘
#倒序
>>> l = [1,3,5,2,6,8,4,12,56,34,55,98]
>>> l.reverse()
>>> l
[98, 55, 34, 56, 12, 4, 8, 6, 2, 5, 3, 1]
‘‘‘
可变类型(列表,字典,集合)
值改变,内存地址不变
不可变类型(字符串,整形,元组)
值改变,内存地址改变
这里注意元组:元组值改变但是内存地址是不变的,理论上是可变类型,但是元组定义,元组不可变,所以元组是不可变类型
‘‘‘
原文:https://www.cnblogs.com/lyh-cur/p/14842540.html