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
相关文章
|
2月前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
133 64
|
3天前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
7 0
|
1月前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
55 5
|
1月前
|
Python
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
56 7
|
2月前
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
50 6
|
3月前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
67 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
3月前
|
自然语言处理 Java 数据处理
【速收藏】python字符串操作,你会几个?
【速收藏】python字符串操作,你会几个?
76 7
|
SQL 数据可视化 数据挖掘
运营学Python|一文搞定编码环境
运营学Python|一文搞定编码环境
248 0
运营学Python|一文搞定编码环境
|
前端开发 Shell 开发工具