2024.3.5
数据类型内置方法
1.数字类型内置
id不变值可变,即在原值的基础上修改,则为可变数据类型;
值变id也变,即重新申请一个空间放入新值,则为不可变数据类型
age = 19
print(f'first:{id(age)}')
age = 20
print(f'second:{id(age)}')
first:4384901776
second:4384901808
可以使用float()方法将纯数字的字符串转为浮点型数字
x = float('111')
print(x)
print(type(x))
111.0
<class 'float'>
2.字符串类型内置
优先掌握
1.按索引取值(只可取不可改变)
# str索引取值
msg = 'hello nick'
# 0123456789 # 索引序号
print(f'索引为6: {msg[6]}')
print(f'索引为-3: {msg[-3]}')
索引为6: n
索引为-3: i
2.切片(顾头不顾尾,步长)
# 索引切片
msg = 'hello nick'
# 0123456789 # 索引序号
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 nick
切片3-8: lo ni
切片3-8,步长为2: l i
切片3-最后,步长为2: l ik
**了解知识点**
切片所有: hello nick
反转所有: kcin olleh
切片-5--2: ni
切片-2--5: cin
3.长度len
# str长度
msg = 'hello nick'
print(len(msg))
10
4.成员运算in和not in
# str成员运算
msg = 'my name is nick, nick handsome'
print(f"'nick' in msg: {'nick' in msg}")
print(f"'jason' not in msg: {'jason' not in msg}")
print(f"not 'jason' in msg: {not 'jason' in msg}")
'nick' in msg: True
'jason' not in msg: True
not 'jason' in msg: True
5.移除空白strip()
- 前后删除 str.strip()
str = ' a b c '
print(str.strip())
'a b c'
- 删除左边空格 str.lstrip()
str = ' a b c '
print(str.lstrip())
'a b c '
- 删除右边空格 str.rstrip()
str = ' a b c '
print(str.rstrip())
' a b c'
- 删除所有空格 .join(str.split())
str = ' a b c '
print(''.join(str.split()))
'abc'
6.切分split
# str切分split
info = 'nick:male:19'
info_list1 = info.split(':')
info_list2 = info.split(':', 1)
print(f'info_list1:{info_list1}')
print(f'info_list2:{info_list2}')
info_list1:['nick', 'male', '19']
info_list2:['nick', 'male:19']
7.循环输出
msg = 'hello nick'
for i in msg:
print(i)
h
e
l
l
o
n
i
c
k
需要掌握
1. strip(),lstrip(),rstrip()(删除字符串头和尾的字符)
print(len(a)) #这里注意字符串a的两端都有一个空白字符,字符a和n之间也有一个。
a=" \rzha ng\n\t "
print(len(a))
b=a.strip() #()里面没有写,就删除字符串头和尾的空白字符(包括\n,\r,\t这些)
print(b)
print(len(b))
输出:
11
zha ng
6
a="rrbbrrddrr"
b=a.strip("r") #输入多个字母也可以删除,相当于把多个字母分解成为单个字母
print(b)
输出:bbrrdd
'''lstrip(),rstrip()'''
a="babacb111baccbb"
print(a.lstrip("abc"))
print(a.rstrip("abc"))
输出:
111baccbb
babacb111
2. lower()和upper() (改成小写或者大写)
# str之lower()和upper()
name = 'Nick Chen'
print(f"name.upper(): {name.lower()}")
print(f"name.upper(): {name.upper()}")
name.upper(): nick chen
name.upper(): NICK CHEN
3. startswith()和endswith() (判断字符串是否是以指定子字符串开头)
# str之startswith()和endswith()
name = 'Nick Chen'
print(f"name.startswith('Nick'): {name.startswith('Nick')}")
print(f"name.endswith('chen'): {name.endswith('chen')}") #这里大写变成了小写
name.startswith('Nick'): True
name.endswith('chen'): False
4. rsplit() (分块,类似于split())
split()对按照给定的字符对字符串中所有对应字符位置
进行分别给定划分的数量后,从左往右
进行划分
rsplit(),从右往左
进行划分
info = 'nick:male:19'
info_list1 = info.split(':')
info_list2 = info.split(':', 1)
info_list3 = info.rsplit(':', 1)
print(f'info_list1:{info_list1}')
print(f'info_list2:{info_list2}')
print(f'info_list3:{info_list3}')
info_list1:['nick', 'male', '19']
info_list2:['nick', 'male:19']
info_list3:['nick:male', '19']
5. join() (连接字符串)
lis = [1,2,'19']
print(f"':'.join(lis): {':'.join(lis)}") # 报错,数字不可和字符串拼接
# str之join()
lis = ['nick', 'male', '19']
print(f"':'.join(lis): {':'.join(lis)}")
':'.join(lis): nick:male:19
6. replace() (替换)
# str值replace()
name = 'nick shuai'
print(f"name.replace('shuai','handsome'): {name.replace('shuai','handsome')}")
name.replace('shuai','handsome'): nick handsome
7. isdigit() (判断是否为整数)
# str值isdigit()
salary = '111'
print(salary.isdigit()) # True
salary = '111.1'
print(salary.isdigit()) # False
True
False
# str之isdigit()应用场景
age = input('age: ')
if age.isdigit():
age = int(age)
if age < 18:
print('小姐姐')
else:
print('阿姨好')
else:
print(f'你的年龄能是这个{age}?')
age: 逗你玩?
你的年龄能是这个逗你玩??
其他操作
1. find()、rfind()、index()、rindex()、count()
rfind() 返回字符串最后一次出现的索引,如果没有匹配项则返回-1
find() 返回字符串第一次出现的索引,如果没有匹配项则返回-1
index()、rindex()功能如上,如果没有匹配项则报错
count()计算字符串个数
# str之find()、rfind()、index()、rindex()、count()
msg = 'my name is tank, tank shi sb, hha'
print(f"msg.find('tank'): {msg.find('tank')}") # 找不到返回-1
print(f"msg.find('tank',0,3): {msg.find('tank',0,3)}")
print(f"msg.rfind('tank'): {msg.rfind('tank')}") # 找不到返回-1
print(f"msg.index('tank'): {msg.index('tank')}") # 找不到报错
print(f"msg.rindex('tank'): {msg.rindex('tank')}") # 找不到报错
print(f"msg.count('tank'): {msg.count('tank')}")
msg.find('tank'): 11
msg.find('tank',0,3): -1
msg.rfind('tank'): 17
msg.index('tank'): 11
msg.rindex('tank'): 17
msg.count('tank'): 2
2. center()、ljust()、rjust()、zfill() (填充)
zfill():为字符串定义长度,如不满足,缺少的部分用0填补
# str之center()、ljust()、rjust()、zfill()
print(f"'info nick'.center(50,'*'): {'info nick'.center(50,'*')}")
print(f"'info nick'.ljust(50,'*'): {'info nick'.ljust(50,'*')}")
print(f"'info nick'.rjust(50,'*'): {'info nick'.rjust(50,'*')}")
print(f"'info nick'.zfill(50): {'info nick'.zfill(50)}") # 默认用0填充
'info nick'.center(50,'*'): ********************info nick*********************
'info nick'.ljust(50,'*'): info nick*****************************************
'info nick'.rjust(50,'*'): *****************************************info nick
'info nick'.zfill(50): 00000000000000000000000000000000000000000info nick
3. expandtabs()
expandtabs():使原字符串中的制表符("\t")的使用空间变大。使用空格来扩展空间。
# str之expandtabs()
print(f"a\\tb\\tc: %s"%('a\tb\tc\t')) # 默认制表符8个空格
print(f"'a\\tb\\tc'.expandtabs(16): %s"%('a\tb\tc\t'.expandtabs(16)))
a\tb\tc: a b c
'a\tb\tc'.expandtabs(16): a b c
4. captalize()、swapcase()、title()
captalize():将字符串的第一个字母变成大写,其余字母变为小写。
swapcase(): 大小写互转
title():首字母大写
# str之captalize()、swapcase()、title()
name = 'nick handsome sWAPCASE'
print(f"name.capitalize(): {name.capitalize()}")
print(f"name.swapcase(): {name.swapcase()}") # 大小写互转
print(f"name.title(): {name.title()}")
name.capitalize(): Nick handsome swapcase
name.swapcase(): NICK HANDSOME Swapcase
name.title(): Nick Handsome Swapcase
5. is数字系列
- isdecimal(): 检查字符串是否值包含十进制字符,如果是返回True,否则返回False。
- isdigit(): 如果字符串只包含数字则返回True,否则返回False。
- isnumeric(): 如果字符串中只包含数字字符,则返回True,否则返回False。
3.列表类型内置
1.优先掌握
按索引取值(正向取值+反向取值),即可存也可以取
# list之索引取值
name_list = ['nick', 'jason', 'tank', 'sean']
name_list[0] = 'nick handsom'
# name_list[1000] = 'tank sb' # 报错
print(f"name_list[0]: {name_list[0]}")
name_list[0]: nick handsom
切片
# list之切片
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list[0:3:2]: {name_list[0:3:2]}")
name_list[0:3:2]: ['nick', 'tank']
a[:] # 从左往右
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[::] # 从左往右
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[::-1] # 从右往左
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
长度len
# list之长度
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"len(name_list): {len(name_list)}")
len(name_list): 4
成员运算in和not in
# list之成员运算in和not in
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"'tank sb' in name_list: {'tank sb' in name_list}")
print(f"'nick handsome' not in name_list: {'nick handsome' not in name_list}")
'tank sb' in name_list: False
'nick handsome' not in name_list: True
追加append
# list之追加值
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.append('tank sb')
print(f"name_list: {name_list}")
name_list: ['nick', 'jason', 'tank', 'sean', 'tank sb']
删除del
# list之删除
name_list = ['nick', 'jason', 'tank', 'sean']
del name_list[2]
print(f"name_list: {name_list}")
name_list: ['nick', 'jason', 'sean']
循环
# list之循环
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
print(name)
nick
jason
tank
sean
需要掌握
- insert()
# list之insert() 将字符串插入到列表中
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.insert(1, 'handsome')
print(f"name_list: {name_list}")
name_list: ['nick', 'handsome', 'jason', 'tank', 'sean']
- pop()
# list之pop(),pop()默认删除最后一个元素 删除列表元素
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list.pop(1): {name_list.pop(1)}")
print(f"name_list: {name_list}")
- remove()
# list之remove() 移除列表元素
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.remove('nick')
print(f"name_list: {name_list}")
name_list: ['jason', 'tank', 'sean']
- count()
# list之count() 计数
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list.count('nick'): {name_list.count('nick')}")
name_list.count('nick'): 1
- index()
# list之index() 索引
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list.index('nick'): {name_list.index('nick')}")
name_list.index('nick'): 0
- clear()
# list之clear()
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.clear()
print(f"name_list: {name_list}")
name_list: []
- copy()
# list之copy() 将表一的内容复制到一个空白表中
name_list = ['Tom', 'Lily', 'Rose']
name_li2 = name_list.copy()
print(name_li2)
['Tom', 'Lily', 'Rose']
- extend()
# list之extend() 将表2复制增加到表1中
name_list = ['nick', 'jason', 'tank', 'sean']
name_list2 = ['nick handsome']
name_list.extend(name_list2)
print(f"name_list: {name_list}")
name_list: ['nick', 'jason', 'tank', 'sean', 'nick handsome']
- reverse()
# list之reverse() 倒序
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.reverse()
print(f"name_list: {name_list}")
name_list: ['sean', 'tank', 'jason', 'nick']
- sort()
# list之sort(),使用sort列表的元素必须是同类型的 顺序
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.sort()
print(f"name_list: {name_list}")
name_list.sort(reverse=True)
print(f"name_list_reverse: {name_list}")
# 倒序第二种方法
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.sort()
print(f"name_list: {name_list}")
name_list1=name_list
name_list1.reverse()
print(f"name_list_reverse: {name_list1}")
name_list: ['jason', 'nick', 'sean', 'tank']
name_list_reverse: ['tank', 'sean', 'nick', 'jason']
4.元组类型内置
元组(tuple)是不可变的列表,即元组的值不可更改,因此元组一般只用于只存不取的需求。
- 列表的值修改后,列表的结构将会发生改变,而元组只需要存储,因此列表在某种程度上而言需要占用更多的内存。
如果只有一个元素的话,则需要多加一个逗号
1.切片(顾头不顾尾,步长)
# tuple之切片
name_tuple = ('nick', 'jason', 'tank', 'sean')
print(f"name_tuple[1:3:2]: {name_tuple[1:3:2]}")
name_tuple[1:3:2]: ('jason',)
元组和列表的区别
列表可变的原因是:索引所对应的值的内存地址是可以改变的
元组不可变得原因是:索引所对应的值的内存地址是不可以改变的,或者反过来说,只要索引对应值的内存地址没有改变,那么元组是始终没有改变的。
5.字典类型内置
1. in和not in
# dic之成员运算in和not in
dic = {'a': 1, 'b': 2}
print(f"'a' in dic: {'a' in dic}")
print(f"1 in dic: {1 in dic}")
'a' in dic: True
1 in dic: False
2. 删除
# dic之删除del
dic = {'a': 1, 'b': 2}
del dic['a']
print(f"dic.get('a'): {dic.get('a')}")
dic.get('a'): None
# dic之删除pop()
dic = {'a': 1, 'b': 2}
dic.pop('a') # 指定元素删除
print(f"dic.pop('b'): {dic.pop('b')}")
print(f"dic.get('a'): {dic.get('a')}")
dic.pop('b'): 2
dic.get('a'): None
# dic之删除popitem()
dic = {'a': 1, 'b': 2}
print(f"dic.popitem(): {dic.popitem()}") # popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。
dic.popitem(): ('b', 2)
3. update()
# dic之update()
dic1 = {'a': 1, 'b': 2}
dic2 = {'c': 3}
dic1.update(dic2)
print(f"dic1: {dic1}")
dic1: {'a': 1, 'b': 2, 'c': 3}
4. fromkeys()
# dic之fromkeys()
dic = dict.fromkeys(['name', 'age', 'sex'], None)
print(f"dic: {dic}")
dic: {'name': None, 'age': None, 'sex': None}
5. setdefault()
函数setdefault()类似于get(),但当键不存在于字典中时它会在字典中添加一项
如果使用setdefault()函数访问字典中一个存在的键的值,则会返回字典中该键对应的值且不会改变字典中原本的键值
# dic之setdefault(),有指定key不会改变值;无指定key则改变值
dic = {'a': 1, 'b': 2}
print(f"dic.setdefault('a'): {dic.setdefault('a',3)}")
print(f"dic: {dic}")
print(f"dic.setdefault('c'): {dic.setdefault('c',3)}")
print(f"dic: {dic}")
dic.setdefault('a'): 1
dic: {'a': 1, 'b': 2}
dic.setdefault('c'): 3
dic: {'a': 1, 'b': 2, 'c': 3}
标签:内置,tank,name,数据类型,list,dic,nick,print,方法
From: https://www.cnblogs.com/adam-yyds/p/18057252