数据类型之字符串与格式化f-string

一.字符串创建

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

描述符总结

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值