python数据结构

1. 列表

1)append() 增加列表项

#!/usr/bin/python3
#_*_coding:utf-8_*_

list1=["google","zhihu","newbie"]
print("更新前列表:",list1)
list1.append("baidu")
print("更新后列表:",list1)

>>输出:
更新前列表: ['google', 'zhihu', 'newbie']
更新后列表: ['google', 'zhihu', 'newbie', 'baidu']

2)del 删除列表项

#!/usr/bin/python3

list1=["google","zhihu","newbie"]
print("删除前列表:",list1)
del list1[2]
print("删除后列表:",list1)

>>输出:
删除前列表: ['google', 'zhihu', 'newbie']
删除后列表: ['google', 'zhihu']

3)列表操作符

Python 表达式 结果 描述
len([1, 2, 3]) 3 长度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
3 in [1, 2, 3] True 元素是否存在于列表中
for x in [1, 2, 3]: print(x, end=" ") 1 2 3 迭代

4)列表拼接

#!/usr/bin/python3

list1=["google","zhihu","newbie"]
print("拼接前列表:",list1)
list1+=[1,2,3,4,5]
print("拼接后列表:",list1)

>>输出:
拼接前列表: ['google', 'zhihu', 'newbie']
拼接后列表: ['google', 'zhihu', 'newbie', 1, 2, 3, 4, 5]

5)列表嵌套

#!/usr/bin/python3

list1=['a','b','c']
list2=[1,2,3]
x=[list1,list2]
print("嵌套列表:",x)
print(x[0])
print(x[1])

>>输出:
嵌套列表: [['a', 'b', 'c'], [1, 2, 3]]
['a', 'b', 'c']
[1, 2, 3]

6)列表比较(operator模块)

operator.lt(a, b)			#a<b
operator.le(a, b)			#a<=b
operator.eq(a, b)			#a==b
operator.ne(a, b)			#a!=b
operator.ge(a, b)			#a>=b
operator.gt(a, b)			#a>b
operator.__lt__(a, b)
operator.__le__(a, b)
operator.__eq__(a, b)
operator.__ne__(a, b)
operator.__ge__(a, b)
operator.__gt__(a, b)

operator.lt(a, b) 与 a < b 相同, operator.le(a, b) 与 a <= b 相同,operator.eq(a, b) 与 a == b 相同,operator.ne(a, b) 与 a != b 相同,operator.gt(a, b) 与 a > b 相同,operator.ge(a, b) 与 a >= b 相同。
#!/usr/bin/python3
import operator

a=[1,2]
b=[2,3]
c=[2,3]
print(operator.eq(a,b))
print(operator.__eq__(a,b))
print(operator.eq(b,c))
print(operator.__eq__(b,c))
print(operator.lt(a,b))

>>输出:
False
False
True
True
True

7)列表的函数

序号 函数
1 len(list)列表元素个数
2 max(list)返回列表元素最大值
3 min(list) 返回列表元素最小值
4 list(seq)将元组转换为列表

Python包含以下方法:

序号 方法
1 list.append(obj)在列表末尾添加新的对象
2 list.count(obj)统计某个元素在列表中出现的次数
3 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4 list.index(obj)从列表中找出某个值第一个匹配项的索引位置
5 list.insert(index, obj)将对象插入列表中指定的索引位置
6 list.pop([index=-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7 list.remove(obj)移除列表中某个值的第一个匹配项
8 list.reverse()反向列表中元素,对列表中的值反向排序
9 list.sort( key=None, reverse=False)对原列表进行永久排序
10 sorted(list,reverse=False)对列表临时排序
11 list.clear()清空列表
12 list.copy()复制列表
#!/usr/bin/python3

#列表的函数
list1=[1,2,3,4]
list2=["a","b","c"]

#列表中追加新的元素append
list1.append(4)
print(list1)

#列表中增加新的序列extend
list1.extend(list2)
print(list1)

#将对象插入列表中指定的索引位置insert
list1.insert(0,"jiaxing")
print(list1)

#统计列表中某个元素出现的个数count
print(list1.count(4))

#找出列表中第一个匹配项的索引位置索引index
print(list1.index(4))

#移除列表中的一个值(默认是最后一个元素),并返回该值pop
print(list1.pop(0))

#移除列表中某个值的第一个匹配项remove
list1.remove(4)
print(list1)

#对列表中的值反向排序reverse
list1.reverse()
print(list1)

#对列表进行排序sort
list2.sort() #默认升序
print(list2)
list2.sort(reverse=True) #reverse=True为降序
print(list2)

#清空列表clear
list1.clear()
print(list1)

#拷贝列表copy
list1=list2.copy()
print(list1)

2. 元组

  • 元组中的值不允许被修改和删除
#!/usr/bin/python3
 
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
 
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
 
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)
  • 可以使用del删除整个元组
#!/usr/bin/python3
 
tup = ('Google', 'Runoob', 1997, 2000)
 
print (tup)
del tup
print ("删除后的元组 tup : ")
print (tup)

关于元组是不可变的

  • 所谓元组的不可变指的是元组所指向的内存中的内容不可变。
>>> tup = ('r', 'u', 'n', 'o', 'o', 'b')
>>> tup[0] = 'g'     # 不支持修改元素
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> id(tup)     # 查看内存地址
4440687904
>>> tup = (1,2,3)
>>> id(tup)
4441088800    # 内存地址不一样了
  • 从以上实例可以看出,重新赋值的元组 tup,绑定到新的对象了,不是修改了原来的对象。

元组内置函数

序号 方法及描述 实例
1 len(tuple) 计算元组元素个数。 >>> tuple1 = ('Google', 'Runoob', 'Taobao') >>> len(tuple1) 3 >>>
2 max(tuple) 返回元组中元素最大值。 >>> tuple2 = ('5', '4', '8') >>> max(tuple2) '8' >>>
3 min(tuple) 返回元组中元素最小值。 >>> tuple2 = ('5', '4', '8') >>> min(tuple2) '4' >>>
4 tuple(iterable) 将可迭代系列转换为元组。 >>> list1= ['Google', 'Taobao', 'Runoob', 'Baidu'] >>> tuple1=tuple(list1) >>> tuple1 ('Google', 'Taobao', 'Runoob', 'Baidu')

3. 字典

1)删除字典

#!/usr/bin/python3
 
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
del tinydict['Name'] # 删除键 'Name'
tinydict.clear()     # 清空字典
del tinydict         # 删除字典
 
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])

2)字典键的特性

  • 不允许同一键值出现两次,如果同一键值被赋予两次值,则后一个会被记住
  • 键必须是不可变的,所以可以是字符串、数字、元组,而列表不行

3)字典的函数

序号 函数及描述
1 dict.clear()删除字典内所有元素
2 dict.copy()返回一个字典的浅复制
3 dict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4 dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
5 key in dict如果键在字典dict里返回true,否则返回false
6 dict.items()以列表返回一个视图对象
7 dict.keys()返回一个视图对象
8 dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9 dict1.update(dict2)把字典dict2的键/值对更新到dict里
10 dict.values()返回一个视图对象
11 pop(key[,default])删除字典 key(键)所对应的值,返回被删除的值。
12 popitem()返回并删除字典中的最后一对键和值。

字典直接赋值和copy的区别

#字典的函数
dict1={"user":"jiaxing","sex":"man","num":[1,2,3]}

dict2=dict1             # 浅拷贝: 引用对象
dict3=dict1.copy()      # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,子对象是引用

dict1['user']="supershy"
dict1['num'].remove(1)

print(dict1)
print(dict2)
print(dict3)

>>输出:
{'user': 'supershy', 'sex': 'man', 'num': [2, 3]}
{'user': 'supershy', 'sex': 'man', 'num': [2, 3]}
{'user': 'jiaxing', 'sex': 'man', 'num': [2, 3]}
  • 实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改。

dict.fromkeys()

  • Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
seq=('user','name','sex')
val='2'
dict1=dict.fromkeys(seq)
dict2=dict.fromkeys(seq,val)
print(dict1)
print(dict2)

>>输出:
{'user': None, 'name': None, 'sex': None}
{'user': '2', 'name': '2', 'sex': '2'}

dict.get()

  • 返回指定键的值,如果键不在字典中返回 default 设置的默认值
#返回指定键的值,如果键不在字典中返回 default 设置的默认值
dict1={'name':'jiaxing','age':22}
print(dict1.get('name','没有这个键'))
print(dict1.get('sex','没有这个键'))

#嵌套字典使用
tinydict = {'Name': 'Runoob', 'Age': 27, 'student':{'stu_name':'jiaxing'}}
print(tinydict.get('student',{}).get('stu_name'))

dict.items()、dict.keys()、dict.values()

  • Python 字典 items() 方法以列表返回视图对象,是一个可遍历的key/value 对。
  • dict.keys()、dict.values()和 dict.items() 返回的都是视图对象( view objects),提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化。
  • 视图对象不是列表,不支持索引,可以使用 list() 来转换为列表。
  • 我们不能对视图对象进行任何的修改,因为字典的视图对象都是只读的。
dict1={'name':'jiaxing','age':22}
print(dict1.items())
print(dict1.keys())
print(dict1.values())

>>输出:
dict_items([('name', 'jiaxing'), ('age', 22)])
dict_keys(['name', 'age'])
dict_values(['jiaxing', 22])

dict.setdefault()

  • Python 字典 setdefault() 方法和 get()方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
dict1={'name':'jiaxing','age':22}
print(dict1.setdefault('name'))
print(dict1.setdefault('sex',None))
print(dict1)

>>输出:
jiaxing
None
{'name': 'jiaxing', 'age': 22, 'sex': None}

dict.update()

  • Python 字典 update() 函数把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict1 里。
dict1={'name':'jiaxing','age':22}
dict2={'sex':'man','hobby':'game'}
dict1.update(dict2)
print(dict1)

>>输出:
{'name': 'jiaxing', 'age': 22, 'sex': 'man', 'hobby': 'game'}

dict.pop()

  • Python 字典 pop() 方法删除字典 key(键)所对应的值,返回被删除的值。
dict1={'name':'jiaxing','age':22}
dict2={'sex':'man','hobby':'game'}
element=dict2.pop('sex')
print(element)
print(dict2)

>>输出:
man
{'hobby': 'game'}

dict.item()

  • Python 字典 popitem() 方法随机返回并删除字典中的最后一对键和值。
  • 如果字典已经为空,却调用了此方法,就报出 KeyError 异常。
#!/usr/bin/python3

site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}

# ('url': 'www.runoob.com') 最后插入会被删除
result = site.popitem()

print('返回值 = ', result)
print('site = ', site)

# 插入新元素
site['nickname'] = 'Runoob'
print('site = ', site)

# 现在 ('nickname', 'Runoob') 是最后插入的元素
result = site.popitem()

print('返回值 = ', result)
print('site = ', site)

>>输出:
返回值 =  ('url', 'www.runoob.com')
site =  {'name': '菜鸟教程', 'alexa': 10000}
site =  {'name': '菜鸟教程', 'alexa': 10000, 'nickname': 'Runoob'}
返回值 =  ('nickname', 'Runoob')
site =  {'name': '菜鸟教程', 'alexa': 10000}

4)字典遍历

  • key(),value(),items()
a={'name':'gaojiaxing','age':20}
#遍历key
for key in a.keys():
    print(key)
#遍历value
for value in a.values():
    print(value)
#遍历整体字典
for key,value in a.items():
    print(f"key:{key} value:{value}")
 
 
a={'gaojiaxing':20,
   'supershy':20
   }
#使用集合对重复的值去重
for value in set(a.values()):
    print(value)

4. 字符串

  • python会将非空字符串解读为True,也可以用None作为占位符
name=''
if name:
	print(name)
else:
	print('no name')
age=None
if age:
	print(age)
else:
	print('no age')

1)字符串函数

序号 方法及描述
1 capitalize()将字符串的第一个字符转换为大写
2 center(width, fillchar)返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
3 count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
4 bytes.decode(encoding="utf-8", errors="strict") Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
5 encode(encoding='UTF-8',errors='strict')以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
6 str.endswith(suffix[, start[, end]]) 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False。可选参数 "start" 与 "end" 为检索字符串的开始与结束位置。
7 expandtabs(tabsize=8)把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
8 find(str, beg=0, end=len(string))检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
9 index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常。
10 isalnum()检查字符串是否由字母和数字组成,即字符串中的所有字符都是字母或数字。如果字符串至少有一个字符,并且所有字符都是字母或数字,则返回 True;否则返回 False。
11 isalpha()如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
12 isdigit()如果字符串只包含数字则返回 True 否则返回 False.
13 islower()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
14 isnumeric()如果字符串中只包含数字字符,则返回 True,否则返回 False
15 isspace()如果字符串中只包含空白,则返回 True,否则返回 False.
16 istitle()如果字符串是标题化的(见 title())则返回 True,否则返回 False
17 isupper()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
18 join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
19 len(string)返回字符串长度
20 ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
21 lower()转换字符串中所有大写字符为小写.
22 lstrip()截掉字符串左边的空格或指定字符。
23 maketrans()创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
24 max(str)返回字符串 str 中最大的字母。
25 min(str)返回字符串 str 中最小的字母。
26 replace(old, new [, max])把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
27 rfind(str, beg=0,end=len(string))类似于 find()函数,不过是从右边开始查找.
28 rindex( str, beg=0, end=len(string))类似于 index(),不过是从右边开始.
29 rjust(width,[, fillchar])返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
30 rstrip()删除字符串末尾的空格或指定字符。
31 split(str="", num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
32 splitlines([keepends])按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
33 startswith(substr, beg=0,end=len(string))检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
34 strip([chars]) 在字符串上执行 lstrip()和 rstrip()
35 swapcase()将字符串中大写转换为小写,小写转换为大写
36 title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
37 translate(table, deletechars="")根据 table 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
38 upper()转换字符串中的小写字母为大写
39 zfill (width)返回长度为 width 的字符串,原字符串右对齐,前面填充0
40 isdecimal()检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。
41 format() 字符串格式化工具
42 readline() 每次只读取一行
43 readlines() 一次性读取文件中所有行,并返回一个列表,文件中一行代表列表中一个元素
#string字符串函数
str1='jiaxing'
str2='gao\njia\rxing'
str3='supershy666嘉'
str4='123'
str5='Gao'
str6='五'
str7=' '
str8='GAO'
str9='-'
str10 = "this is string example....wow!!!"
list1=['g','a','o','j','i','a','x','i','n','g']
#首字母大写capitalize
print(str1.capitalize())
#将字符串全部转换成大写upper
print(str1.upper())

#center() 方法返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
print(str1.center(50,'*'))

#统计字符在字符串中出现的次数count
print(str1.count('i'))
print(str1.count('i',0,4))

#判断字符串是否以指定字符结尾endswith()
print(str1.endswith('xing'))
print(str1.endswith('xing',3,7))

#替换字符串中的\t制表符为空格expandtabs
print(str2)
print(str2.expandtabs())
print(str2.expandtabs(3))

#检测指定字符串是否在指定的范围内find()
print(str1.find('xing'))
print(str1.find('xing',5,7))

#rfind()从字符串右侧开始查找
print(str1.rfind('xing'))
print(str1.rfind('xing',5,7))

#index()和find()方法一样,只不过匹配到字符串会报异常
print(str1.index('xing'))
#print(str1.index('xing',5,7)) #会报错

#rindex()从右侧开始查找
print(str1.rindex('xing'))
#print(str1.rindex('xing',5,7)) #会报错

#检查字符串中是否都是字母或数字组成isalnum()
print(str1.isalnum())
print(str2.isalnum())
print(str3.isalnum())

#检查字符串中是否是字母或汉字组成,有数字则返回flase,isalpha()
print(str1.isalpha())
print(str2.isalpha())
print(str3.isalpha())

#检查字符串中是否只包含数字isdigit()
print(str1.isdigit())
print(str2.isdigit())
print(str3.isdigit())
print(str4.isdigit())


#判断字符串中是否都是小写字母islower()
print(str1.islower())
print(str4.islower())
print(str5.islower())

#检查字符串中是否只包含数字字符isnumeric()
print(str4.isnumeric())
print(str6.isnumeric())

#字符串中只包含空白则返回true,isspace()
print(str7.isspace())

#检查字符串是否是title()格式的istitle()
print(str5.istitle())

#判断字符串是否都是大写isupper()
print(str5.isupper())
print(str8.isupper())

#将字符串序列以指定字符进行拼接join(seq)
print(str7.join(str1))
print(str9.join(str1))
print(str9.join(list1))

#返回原字符串左对齐,可以指定长度+填充的符号(默认填充空格)ljust()
print(str1.ljust(50,'*'))

#返回原字符串右对齐,可以指定长度+填充的符号(默认填充空格)rjust()
print(str1.rjust(50,'*'))


#截掉字符串中左边的空格或者指定字符lstrip()
print(str1.lstrip('jia'))

#截掉字符串中右边的空格或者指定字符rstrip()
print(str1.rstrip('xing'))

#同时截掉字符串中左右边的空格或者指定字符strip()
print(str1.strip('i'))

#转换字符串中的字符maketrans(),translate()
mytab=str1.maketrans('j','x')
print(str1.translate(mytab))

#将字符串中的old转换为new,如果指定max则转换次数不超过max,replace()
print(str1.replace('i','a',1))
print(str1.replace('jia','gao'))

#将字符串分割成多个部分返回到列表中,默认以空格分割split()
print(str10.split())
print(str1.split('i'))
print(str1.split('i',1))

#以\r,\n转义字符进行切割True为显示转义字符,默认false不显示splitlines()
print(str2.splitlines())
print(str2.splitlines(True))
print(str2)

#判断字符串是否以指定字符开头,也可以指定范围内startswith()
print(str1.startswith('j'))
print(str1.startswith('x',3,6))

#将字符串中大写转换为小写,小写转化为大写swapcase()
print(str5.swapcase())

#返回指定长度的字符串,原字符串长度不够则在前面填充0输出zfill()
print(str1.zfill(50))

#检查字符串中是否只包含十进制字符isdecimal()
print(str4.isdecimal())

format / f"string" / %s % ()区别

从性能角度看,f-string 是最快的,其次是 str.format(),最后是 % 操作符。这是因为 f-string 是在运行时直接解析的,而其他两种方式需要更多的中间步骤。
从 Python 3.6 开始,引入了 f-strings,这是一种更简洁的字符串格式化方法,语法更直观

format

1)基本用法

# 括号及之内的字符(称为格式字段)被替换为传递给 str.format() 方法的对象。
s = "Hello, {}!".format("world")
print(s)  # 输出: Hello, world!

2)指定位置

# 通过索引指定位置
# 花括号中的数字表示传递给 str.format() 方法的对象所在的位置。
print('{0} and {1}'.format('spam', 'eggs'))
spam and eggs
print('{1} and {0}'.format('spam', 'eggs'))
eggs and spam

# 通过关键字指定位置
s = "{name} is {age} years old".format(name="Alice", age=30)
print(s)  # 输出: Alice is 30 years old

3)格式化数字

# 浮点数格式化,指定小数点后位数
s = "The value of pi is approximately {0:.3f}".format(3.1415926)
print(s)  # 输出: The value of pi is approximately 3.142

# 整数格式化,指定宽度和填充字符
s = "The number is {0:04d}".format(42)
print(s)  # 输出: The number is 0042

4)对齐和填充

# 左对齐
s = "{:<10}".format("hello")
print(s)  # 输出: hello     

# 右对齐
s = "{:>10}".format("hello")
print(s)  # 输出:       hello

# 居中对齐
s = "{:^10}".format("hello")
print(s)  # 输出:    hello   

# 指定填充字符
s = "{:*^10}".format("hello")
print(s)  # 输出: **hello***

5)格式化日期

from datetime import datetime

# 格式化日期
now = datetime.now()
s = "Today is {:%Y-%m-%d %H:%M:%S}".format(now)
print(s)  # 输出: Today is 2025-01-17 12:34:56

6)格式化复杂数据结构

# 格式化字典
person = {"name": "Bob", "age": 25}
s = "Name: {0[name]}, Age: {0[age]}".format(person)
print(s)  # 输出: Name: Bob, Age: 25

# 格式化对象
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person = Person("Alice", 30)
s = "Name: {0.name}, Age: {0.age}".format(person)
print(s)  # 输出: Name: Alice, Age: 30

7)使用 f-strings(Python 3.6+)

  • 从 Python 3.6 开始,引入了 f-strings,这是一种更简洁的字符串格式化方法,语法更直观:
name = "Alice"
age = 30
s = f"Name: {name}, Age: {age}"
print(s)  # 输出: Name: Alice, Age: 30

# 格式化表达式
s = f"The value of pi is approximately {3.1415926:.3f}"
print(s)  # 输出: The value of pi is approximately 3.142

match语句

posted @   逃离这世界~  阅读(3)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示

目录导航