python 字符串格式化表达式_py_06字符串的几种格式化(%、format、f表达式)

字符串的几种格式化

一、% 格式化作为一个占位符.%s字符串 %d整数 %f浮点数

print("今年高考考了%s,成绩为%f分"%('语文', 125.5))

结果:

今年高考考了语文,成绩为125.500000分

浮点数,x.yf: x是小数的宽度,y是保留多少位小数

print("浮点数:%f,%f " % (1, 22.22))

print("浮点数保留两位小数:%.2f " % 22.222)

print("浮点数保留两位小数,宽5位,不足补0:%05.2f " % 2.222)

结果

浮点数:1.000000,22.220000

浮点数保留两位小数:22.22

浮点数保留两位小数,宽5位,不足补0:02.22

二、字符串格式化操作🔨🔨

在%方法中%s只能替代字符串类型,而在format中不需要理会数据类型;

单个参数可以多次输出,参数顺序可以不相同;

填充方式十分灵活,对齐方式十分强大;

官方推荐用的方式,%方式将会在后面的版本被淘汰

相对基本格式化输出采用 % 的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号 {} 作为特殊字符代替 %

1、按照默认顺序,不指定位置

print("{} {}".format("hello","world") )

结果:hello world

2、设置指定位置,可以多次使用

print("{0} {1} {0}".format("hello","or"))

结果:hello or hello

3、使用字典格式化

person = {"name":"opcai","age":20}

print("My name is {name} . I am {age} years old .".format(**person))

结果:My name is opcai . I am 20 years old .

4、通过列表格式化

stu = ["opcai","linux","MySQL","Python"]

print("My name is {0[0]} , I love {0[1]} !".format(stu))

结果:My name is opcai , I love linux !

print("{:.2%}".format(0.887)) # % 百分比显示

print("{:d}".format(55555)) # d 传入的是int整数

# 输出大括号,大括号抱住一个大括号

print("{} {{0}}".format("opcai_linux"))

print("保留小数点后2位的浮点数:%.2f"%3.14)

name = input("请输入帅哥的名字:")

student_no = int(input("请输入学号:"))

apple_price = float(input("请输入苹果的价格"))

apple_weight = float(input("请输入苹果的重量:"))

percent_rate = 3.145

print("我的名字叫{},请多多关照".format(name))

print("我的学号是{:d}".format(student_no))

print("苹果的单价{:.2f}元/斤,购买{:.2f}斤,需要支付{:.2f}".\

format(apple_price, apple_weight,apple_price*apple_weight))

print("打印数字格式化百分比占比:{:.2%}".format(percent_rate))

结果:

88.70%

55555

opcai_linux {0}

保留小数点后2位的浮点数:3.14

请输入帅哥的名字:阿登

请输入学号:44

请输入苹果的价格44.6

请输入苹果的重量:2

我的名字叫阿登,请多多关照

我的学号是44

苹果的单价44.60元/斤,购买2.00斤,需要支付89.20

打印数字格式化百分比占比:314.50%

format关键字容易报错的点

# {name}里指定了关键字参数,format()函数里必须指定 name=value,否则要报错

print("今天是{name}的{key}生日会".format(22, 11, name="帅哥", key=18))

# format()里关键字参数有value,位置参数要放在关键字参数前面。

print("今天是{name}的{key}生日会,接着上{}".format("test", name="帅哥", key=18))

以下2个例子会报错:

# 下面的案例就会报错

print("今天是{0}的{}生日会".format("帅哥", 18))

print("今天是{name}的{key}生日会,接着上{}".format( name="帅哥", key=18,"test"))

'''

# 注意点:

当你指定了关键字 {name} ,如果不指定 name=xxx ,则会报错

当你指定了关键字,又只写了 {} 时,你传入带有关键字指定的值必须写在后面,类似函数(形参在前,实参在后)

{} 和 {1} 是不能共存的

'''

结果报错:

ValueError Traceback (most recent call last)

in

1 # 以下会报错

----> 2 print("今天是{1}的{}生日会".format("帅哥", 18))

3

4

ValueError: cannot switch from manual field specification to automatic field numbering

format 填充公式:{变量名/索引:填充字符|对齐方式|宽度.精度f}

408ccea41cbf

image.png

# ^居中对齐 右对齐 20是宽度不够用★补齐,.2f是精度保留2位小数

print("阿登深深地爱着你,{:★^20.2F}年".format(10000.888))

# 结果:阿登深深地爱着你,★★★★★★10000.89★★★★★★年

数字格式化:

408ccea41cbf

image.png

三、python3.6新出的f表达式

f表达式:在字符串前面加入一个f即为f表达式,字符串中{变量名}引用变量

import random

love_times = random.randint(0, 100)

name = "阿登"

lover = "可爱小姐姐"

sea = "🌊"

tortoise = "🐢"

# 可以在f字符串中,计算Python中的表达式

print(f"{name}对{lover}的爱,犹如滔滔江水绵绵不绝!{sea * 3}\n如果实在要加一个期限的话,我想是{love_times + 10000}年!{tortoise * 3}")

结果:

阿登对可爱小姐姐的爱,犹如滔滔江水绵绵不绝!🌊🌊🌊

如果实在要加一个期限的话,我想是10069年!🐢🐢🐢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,字符串格式化可以使用三种方式: 1. 百分号(%)格式化字符串 这是Python早期版本中使用的一种格式化字符串的方式,类似于C语言中的printf函数。它的基本语法为: ```python string % value ``` 其中,string是要格式化字符串,value是要替换的值。可以使用占位符来指定要替换的值的类型和格式,例如: - %s:字符串 - %d:整数 - %f:浮点数 例如,将一个字符串中的占位符替换为指定的值: ```python name = "Alice" age = 20 height = 1.65 info = "My name is %s, I'm %d years old, and my height is %.2f meters." % (name, age, height) print(info) ``` 输出结果为:My name is Alice, I'm 20 years old, and my height is 1.65 meters. 2. format()方法格式化字符串 这是Python中推荐使用的一种格式化字符串的方式,它的基本语法为: ```python string.format(value1, value2, ...) ``` 其中,string是要格式化字符串,value1、value2等是要替换的值。可以使用占位符{}来指定要替换的值的类型和格式,例如: - {}:自动编号 - {0}、{1}:手动编号 - {:s}:字符串 - {:d}:整数 - {:.2f}:浮点数 例如,将一个字符串中的占位符替换为指定的值: ```python name = "Alice" age = 20 height = 1.65 info = "My name is {}, I'm {} years old, and my height is {:.2f} meters.".format(name, age, height) print(info) ``` 输出结果为:My name is Alice, I'm 20 years old, and my height is 1.65 meters. 3. f-string格式化字符串 这是Python 3.6及以上版本中新增的一种格式化字符串的方式,它的基本语法为: ```python f"string {value}" ``` 其中,string是要格式化字符串,value是要替换的值。可以在占位符中使用表达式来计算要替换的值,例如: - {expression}:表达式 - {name}:变量名 例如,将一个字符串中的占位符替换为指定的值: ```python name = "Alice" age = 20 height = 1.65 info = f"My name is {name}, I'm {age} years old, and my height is {height:.2f} meters." print(info) ``` 输出结果为:My name is Alice, I'm 20 years old, and my height is 1.65 meters.

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值