首页 > 其他分享 >数据类型内置方法(1)

数据类型内置方法(1)

时间:2024-03-06 18:12:03浏览次数:35  
标签:内置 tank name 数据类型 list dic nick print 方法

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

相关文章

  • day 05-4 数据类型(字符串)
    4.6字符串独有功能练习题#1.写代码实现判断用户输入的值否以"al"开头,如果是则输出"是的",否则输出"不是的"data=input("请输入您的用户名:")ifdata.startswith("al"):print("是的")else:print("不是的")#2.写代码实现判断用户输入的值否以"ab&......
  • WebAPI中控制器路由和方法路由的区别
    控制器级别的路由:在控制器级别应用路由意味着所有该控制器中的操作都将遵循指定的路由模板。控制器级别的路由通常用于区分不同的API版本或将相关的操作分组到一个URL路径下。控制器级别的路由可以在控制器类上应用,例如:[Route("api/[controller]")][ApiController......
  • Kubernetes 证书过期问题的处理方法
    问题现象出现KubernetesAPI无法调取的现象,使用kubectl命令获取资源均返回如下报错.Unabletoconnecttotheserver:x509:certificatehasexpiredorisnotyetvalid经网上搜索之后发现。应该是Kubernetes集群的证书过期了,使用命令排查证书的过期时间.#kubea......
  • makefile --- 调试打印方法
    使用info/warning/error增加调试信息$(info“hereaddthedebuginfo”) info信息不打印消息所在的行号$(warning“hereaddthedebuginfo”) 打印行号,makefile继续执行$(error“error:thiswillstopthecompile”) 打印行号,停止执行打印变量的值$......
  • Three.js_解决谍影闪烁重影模型的方法
    renderer=newTHREE.WebGLRenderer({antialias:true,logarithmicDepthBuffer:true,});logarithmicDepthBuffer,官方解释:是否使用对数深度缓存。如果要在单个场景中处理巨大的比例差异,就有必要使用,默认是false。使用了会带来额外的开销,但是效果会变好.原因......
  • MarkDown基础使用方法
    MarkDown语法推荐文本编辑器:Typora文件后缀:xxx.md标题:+标题名字(一级标题)+标题名字(二级标题)类推字体:Hell,World!Hell,World!Hell,World!Hell,World!引用箭头符号空格分割线三个-三个*占全屏图片超链接点击跳转到***列表ABC有序列表1.......
  • 01_C++基本数据类型_算数类型
    1.算数类型算数类型主要分为两类——整型和浮点型带符号和无符号类型带符号:int、short、long和longlong,通过在这些类型名前添加unsigned可以得到无符号类型。 选择符号的准则:(1)数值不可能为负时,选择无符号类型。(2)使用int执行整数运算。(3)算数表达式不要使用char或bool,存放字......
  • linux 中避免脚本重复执行的方法
     001、在特定的情况下,为了防止脚本重复执行,造成混乱,可以在末尾追加如下语句避免脚本重复执行[root@pc1test1]#lsa.sh[root@pc1test1]#cata.sh##测试脚本#!/bin/bashseq2seq2sed-i's/^/#/'$0##在脚本的最后一行增加该句,实际上是在脚本的所有......
  • Unity3D 常用得内置函数(Cg与GLSL)详解
    Cg和GLSL是Unity3D中常用的着色器语言,通过使用这两种语言,开发者可以实现各种精美的视觉效果。本文将详细介绍Unity3D中常用的一些内置函数,并给出相应的技术详解和代码实现。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大......
  • C#中屏蔽第三方DLL中的Console输出的方法
     1.引入privateconstInt32STD_OUTPUT_HANDLE=-11;[DllImport("Kernel32.dll")]externstaticBooleanSetStdHandle(Int32nStdHandle,SafeHandleZeroOrMinusOneIsInvalidhandle);[DllImport("Kernel32.dll")]externstaticSafePipeHandleGetSt......