一.字符串创建
1.创建方式
① 单引号
② 双引号
③ 三个单引号或三个双引号
2.字符串是不可变类型
即创建后不可被改变,如果需要做修改,只能重新生成
二.字符串格式化(旧)
1. %-formatting
例1:
name = 'kenzo'
login_time = 10
cost = 258.888
print('你好%s,欢迎登陆!这是您登陆的第%d次。您本次消费%.2f元。' % (name, login_time, cost))
输出:
你好kenzo,欢迎登陆!这是您登陆的第10次。您本次消费258.89元。
例2:
data = {'name': 'kenzo', 'login_time': 10, 'cost': 258.888}
tuple_val = (data['name'], data['login_time'], data['cost'])
print('你好%s,欢迎登陆!这是您登陆的第%d次。您本次消费%.2f元。' % tuple_val)
输出:
你好kenzo,欢迎登陆!这是您登陆的第10次。您本次消费258.89元。
例3:
输出9*9乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print('%s * %s = %s' % (j, i, j * i), end=' ')
print('\n')
2. str.format()
可以通过 {} 和 : 来代替以前的 %,可以接受无限个参数,位置可以不按顺序
例1:
name = 'kenzo'
login_time = 10
cost = 258.888
print('你好{0},欢迎登陆!这是您登陆的第{1}次。您本次消费{2:.2f}元。恭喜{0}成为VIP。'.format(name, login_time, cost))
输出:
你好kenzo,欢迎登陆!这是您登陆的第10次。您本次消费258.89元。恭喜kenzo成为VIP。
例2:
name = 'kenzo'
login_time = 10
cost = 258.888
print('你好{name},欢迎登陆!这是您登陆的第{log}次。您本次消费{cost:.2f}元。恭喜{name}成为VIP。'.format(name=name, log=login_time, cost=cost))
输出:
你好kenzo,欢迎登陆!这是您登陆的第10次。您本次消费258.89元。恭喜kenzo成为VIP。
例3:
data = {'name': 'kenzo', 'login_time': 10, 'cost': 258.888}
print('你好,欢迎{}登陆!这是您登陆的第{}次。您本次消费{:.2f}元。'.format(data['name'], data['login_time'], data['cost']))
输出:
你好,欢迎kenzo登陆!这是您登陆的第10次。您本次消费258.89元。
例4:
输出9*9乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print('{0}*{1}={2}'.format(j, i, j * i), end=' ')
print('\n')
三.f-string用法(新)
f 或 F 修饰符引领的字符串(f’xxx’或F’xxx’),以大括号 {} 标明被替换的字符
例1: 基本使用方法
name = 'kenzo'
login_time = 10
cost = 258.888
print(f'你好{name},欢迎登陆!这是您登陆的第{login_time}次。您本次消费{cost:.2f}元。恭喜{name}成为VIP。')
输出:
你好kenzo,欢迎登陆!这是您登陆的第10次。您本次消费258.89元。恭喜kenzo成为VIP。
例2: 表达式求值
print(f'The answer is {1 * 2 + 3}')
输出:
The answer is 5
例3: 函数调用
name = 'KENZO'
print(f'My name is {name.lower()}')
输出:
My name is kenzo
例4: 函数调用
import math
print(f'π is {math.log(math.pi)}')
输出:
π is 1.1447298858494002
例5:
输出9*9乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f'{j}*{i}={j * i}', end=' ')
print('\n')
例6: 多行连接
name = 'kenzo'
age = 10
a = f"Hello! " \
f"I'm {name}. " \
f"I'm {age}."
print(a)
输出:
Hello! I'm kenzo. I'm 10.
例7: 左中右对齐
s = 'kenzo'
print(f'{s:<8}')
print(f'{s:>8}')
print(f'{s:^8}')
输出:
kenzo
kenzo
kenzo
例8: 正负数表示
print(f'{999:+}')
print(f'{-999:+}')
print(f'{999: }')
print(f'{-999: }')
输出:
+999
-999
999
-999
例9: 进制表示
print(f'二进制:{123:#0b}')
print(f'八进制:{123:#0o}')
print(f'十六进制小写:{123:#0x}')
print(f'十六进制大写:{123:#0X}')
输出:
二进制:0b1111011
八进制:0o173
十六进制小写:0x7b
十六进制大写:0X7B
例10: 宽度与精度
a = 888.999
print(f'a = {a:10.2f}')
print(f'a = {a:010.2f}')
print(f'a = {a:10.2e}')
print(f'a = {a:10.2%}')
print(f'a = {a:10.2g}')
s = 'hello'
print(f's = {s:10s}')
print(f's = {s:10.3s}')
输出:
a = 889.00
a = 0000889.00
a = 8.89e+02
a = 88899.90%
a = 8.9e+02
s = hello
s = hel
例11: 分隔符
a = 1234567.7654321
print(f'a = {a:f}')
print(f'a = {a:,f}')
print(f'a = {a:_f}')
b = 1234567890
print(f'b = {b:_b}')
print(f'b = {b:_o}')
print(f'b = {b:_d}')
print(f'b = {b:_x}')
输出:
a = 1234567.765432
a = 1,234,567.765432
a = 1_234_567.765432
b = 100_1001_1001_0110_0000_0010_1101_0010
b = 111_4540_1322
b = 1_234_567_890
b = 4996_02d2
例12: 日期表示
import datetime
now = datetime.datetime.today()
print(f'the time is {now:%Y-%m-%d (%a) %H:%M:%S}')
输出:
the time is 2020-05-19 (Tue) 22:48:52
描述符总结