首页 > 其他 > 详细

内置方法 1(数据类型)

时间:2021-06-02 21:33:05      阅读:24      评论:0      收藏:0      [点我收藏+]

内置方法 1(数据类型)

整形和浮点数

定义方法:

? 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]

可变类型和不可变类型

‘‘‘
可变类型(列表,字典,集合)
      值改变,内存地址不变
不可变类型(字符串,整形,元组)
      值改变,内存地址改变
      
      
 这里注意元组:元组值改变但是内存地址是不变的,理论上是可变类型,但是元组定义,元组不可变,所以元组是不可变类型
‘‘‘

内置方法 1(数据类型)

原文:https://www.cnblogs.com/lyh-cur/p/14842540.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!