Python__24--格式化字符串与字符串的编码、解码转换

简介: 驻留机制、格式化字符串与字符串的编码、解码转换

1 格式化字符串

1.1 %占位符

  1. %s:字符串
  2. %d、%i:整数
  3. %f :浮点数
name='张三'
age=20
print('我叫%s,今年%d岁了'%(name,age))
#输出:我叫张三,今年20岁了

1.2 {}占位符

print('我叫{0},今年{1}岁了'.format(name,age))
print(f'我叫{name},今年{age}岁了')
#输出:我叫张三,今年20岁了
#输出:我叫张三,今年20岁了

1.3 单位精度

1.3.1 使用%

print('%d'%99)
print('%10d'%99)    #10代表输出宽度
print('%.3f'%3.1415926)    #.3f代表三位小数
print('%10.3f'%3.1415926)

1.3.2 使用{}

print('{0:.3f}'.format(3.1415926))    #0代表第一个占位符3.1415926,.3表示小数点后三位,f表示浮点型
print('{0:10.3f}'.format(3.1415926))    #10代表输出宽度

#输出:3.142
#输出:     3.142

1.4 对齐

# 左对齐
'{:*<10}'.format('分割线')
#输出:分割线*******
# 居中
'{:*^10}'.format('分割线')
#输出:***分割线****
# 右对齐
'{:*>10}'.format('分割线')
#输出:*******分割线

2 字符串的编码、解码转换

  • 编码:将字符串转换为二进制数据(bytes)
  • 解码:将bytes类型的数据转换成字符串类型
  • byte=s.encode(encoding='GBK') 编码
  • print(byte.decode(encoding='GBK')) 解码
  • byte=s.encode(encoding='UTF-8') 编码
  • print(byte.decode(encoding='UTF-8')) 解码

测试代码:

s="天涯共此时"
byte=s.encode(encoding='GBK')
print(byte)
print(byte.decode(encoding='GBK'))

byte=s.encode(encoding='UTF-8')
print(byte)
print(byte.decode(encoding='UTF-8'))

测试结果:

b'\xcc\xec\xd1\xc4\xb9\xb2\xb4\xcb\xca\xb1'
天涯共此时
b'\xe5\xa4\xa9\xe6\xb6\xaf\xe5\x85\xb1\xe6\xad\xa4\xe6\x97\xb6'
天涯共此时

进程已结束,退出代码为 0

3 字符串的驻留机制

测试代码:

a=257
b=257
c=257
print(a,id(a))
print(b,id(b))
print(c,id(c))

测试结果:

257 2494013466448
257 2494013466448
257 2494013466448

进程已结束,退出代码为 0

内存示意图:

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ea0f5457052746f6830e6373618c9b89~tplv-k3u1fbpfcp-zoom-1.image

字符串驻留:

字符串驻留:是一种在内存中保存一份且不可变字符串的方法。(相同的字符串只保留一份)不同的值被存放在字符串的驻留池当中,Python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同的字符串时,不会开辟新的空间,而是把字符串的地址赋给新的创建变量。

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ac8409e99b094cfdaf76347778da6505~tplv-k3u1fbpfcp-zoom-1.image

import sys
a =sys.intern(b) #强制驻留

测试代码:

import sys
a='Python'
b='world'
c='Pythonworld'
d=a#+b
print(d,id(d))
print(c,id(c))
d=sys.intern(c)
print(d,id(d))
print(c,id(c))

测试结果:

Python 1828817256816
Pythonworld 1828817241584
Pythonworld 1828817241584
Pythonworld 1828817241584

进程已结束,退出代码为 0
相关文章
|
3天前
|
Go 索引 Python
非常全面的python字符串相关处理方法(二)
非常全面的python字符串相关处理方法(二)
|
3天前
|
存储 索引 Python
非常全面的python字符串相关处理方法(一)
非常全面的python字符串相关处理方法(一)
|
7天前
|
存储 编解码 运维
第二章 Python字符串处理和编码不再发愁
第二章 Python字符串处理和编码不再发愁
|
7天前
|
机器学习/深度学习 存储 数据挖掘
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
|
8天前
|
Python
Python 字符串格式化指南
本文介绍了Python中的三种字符串格式化方法:1) 使用 `%` 操作符,如 `%s` 和 `%d`;2) `str.format()` 方法,通过 `{}` 占位符插入变量;3) Python 3.6 引入的 f-strings,直接在字符串内嵌入变量。此外,还提到了高级用法,如格式控制(如指定小数位数)。这些方法有助于更有效地处理和格式化字符串输出。
8 0
|
9天前
|
Python
python html(文件/url/html字符串)转pdf
python html(文件/url/html字符串)转pdf
9 0
|
15天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
58 0
|
15天前
02-python的基础语法-标识符/运算符/字符串拓展/字符串的拼接/字符串格式化/字符串精度控制/字符串格式化方式2/对表达式进行格式化/练习题/数据输入-input语句
02-python的基础语法-标识符/运算符/字符串拓展/字符串的拼接/字符串格式化/字符串精度控制/字符串格式化方式2/对表达式进行格式化/练习题/数据输入-input语句
|
16天前
|
数据采集 Python
python学习9-字符串
python学习9-字符串
|
20天前
|
存储 Python
python字符串的定义讲解以及格式化案例
Python字符串是文本数据类型,可使用单引号或双引号定义。格式化字符串能插入变量值,常见方法有:1) `%` 运算符,如 `print(&quot;我的名字是 %s,我今年 %d 岁。&quot; % (&quot;张三&quot;, 25))`;2) `str.format()`,如 `print(&quot;我的名字是 {},我今年 {} 岁。&quot;.format(&quot;张三&quot;, 25))`;3) Python 3.6+ 的f-string,如 `print(f&quot;我的名字是 {name},我今年 {age} 岁。&quot;)`。
6 1