百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

Python基础:f-string不同数据类型的格式化选项,终极指南!

liebian365 2025-03-19 14:04 2 浏览 0 评论

上一篇文章我们介绍了4种字符串格式化方法,其中最现代、最直观的方式是f-string,从Python 3.6开始引入,而且时不时就增加一些超级优雅的小改进。今天,钢铁老豆想要继续给大家展开介绍不同数据类型的格式化选项,以f-string为例,同样适用于其他格式化方法。

0.f-string简介

f-string,或称为格式化字符串字面值,是一种在字符串前加上 `f` 或 `F` 前缀的新语法。通过这种方式,您可以直接在字符串中嵌入表达式,并在运行时计算这些表达式的值。它不仅提高了代码的可读性,还加快了字符串处理的速度。

1.基本用法

使用 f-string 非常简单。只需在字符串前加上字母 `f`,并将表达式放在大括号 `{}` 中。

name = "张三"
age = 30
print(f"你好,{name},你明年就{age + 1}岁了。") # 你好,张三,你明年就31岁了。

除了基本的变量外,你还可以在花括号里调用函数、访问字典、执行算术运算等。

data = {'name': '赵六', 'job': '工程师'}
print(f"{data['name']} 是一名 {data['job']}")

2.格式化选项

下面,让钢铁老豆更详细地介绍 Python f-string 的各种格式化选项,满足不同数据类型的需求。

2.1 数字格式化

整数和浮点数

  • 定制小数点位数:使用 `:.nf` 格式,其中 `n` 代表小数点后的位数。
number = 3.14159
print(f"{number:.3f}") # 输出 3.142
  • 定制总宽度和小数点位数:使用 `:m.nf`,`m` 为总宽度,`n` 为小数点位数。
number = 3.14159
print(f"{number:10.3f}") # 宽度为10,小数点后3位
  • 使用千位分隔符:使用 `:,` 可以为大数字添加千位分隔符。
number = 1234567.89
print(f"{number:,}") # 输出 1,234,567.89

进制转换

  • 十六进制:使用 `:x` 或 `:X`。
number = 255
print(f"{number:x}") # 输出 ff
  • 八进制:使用 `:o`。
number = 255
print(f"{number:o}") # 输出 377
  • 二进制:使用 `:b`。
number = 255
print(f"{number:b}") # 输出 11111111

百分比格式化

  • 百分比:使用 `:%` 或 `:.nf%` 格式化为百分比形式,`n` 定义小数位数。
fraction = 0.123
print(f"{fraction:.1%}") # 输出 12.3%

2.2 字符串格式化

  • 对齐:使用 `:<` :>` 右对齐,`:^` 居中对齐。
name = "Alice"
print(f"{name:>10}") # 右对齐,宽度为10
  • 填充:在对齐字符前添加填充字符。
name = "Alice"
print(f"{name:*^10}") # 使用*填充,居中对齐
  • 截断:使用 `.n` 限制字符串长度,其中 `n` 是最大字符数。
text = "Hello World"
print(f"{text:.5}") # 输出 Hello

3.自定义对象格式化

如果对象实现了 `__format__` 方法,f-string 也可以使用指定的格式代码来格式化该对象。每当格式化一个对象时(例如,使用`format()`函数或在f-string中引用),Python会查找该对象的`__format__`方法。该方法接收一个格式说明符作为参数,这个说明符可以是空字符串,或是任何有效的格式代码,您可以在方法内部解释并应用这些代码。

例如,如果您正在设计一个财务相关的类,可能会想允许用户根据不同的货币或会计需求选择不同的显示格式:

class Money:
    def __init__(self, amount):
        self.amount = amount

    def __format__(self, format_spec):
        if format_spec == 'usd':
            return f"${self.amount:.2f}"
        elif format_spec == 'eur':
            return f"EUR{self.amount:.2f}"
        elif format_spec == 'clean':
            return f"{self.amount:.2f}"
        else:
            # 默认为美元格式
            return f"${self.amount:.2f}"

# 使用自定义格式
money = Money(1234.5)
print(f"{money}")           # $1234.50
print(f"{money:'eur'}")     # EUR1234.50
print(f"{money:'clean'}")   # 1234.50

这除了增强类的自描述性和灵活性,还可以使对象的字符串表示形式更加友好和符合场景需求。这在创建API、框架或任何需要用户与您的对象进行交互的应用程序时特别有用。

好了,以上就是不同数据类型常见的格式化选项,f-string 不仅使用简单,而且非常强大和灵活。

欢迎点赞+收藏+评论+关注,每天学习一点Python小知识,无论基础、模块、数据分析、深度学习和Ai,总有你感兴趣的。我是钢铁老豆,一个30岁转行IT、自学成为算法工程师、想用Ai点亮孩子小小世界的Pythoner。

相关推荐

python如何对字符串进行操作(python如何对字符串进行操作输出)

1.字符串的创建可通过直接赋值、构造或转义字符来创建字符串。#普通字符串s="Hello,World!"#多行字符串(使用三引号)multi_line_str='''Thisi...

Excel表格中11个常用的字符串函数

今天和大家聊聊常用的字符串函数,在不同的条件下,如何选择字符串函数很关键。下面我为大家列举了11个关于字符串的函数公式。一、EXACT(两个字符串进行结果比较)比较两个字符串是否完全相同(这里是要区分...

详细介绍一下Python中如何对字符串进行操作?

在Python中,字符串做为一种常见的数据处理类型,几乎在每个应用程序中都会被用到。而作为Python中使用最广泛的数据类型Python也是提供了很多强大的方法来支持对于字符串的处理操作。下面我们就来...

Java中你知道几种从字符串中找指定的字符的数量

遇到这样的问题,常规的思路估计就是遍历String,然后逐个对比。下面先看循环遍历循环遍历privatestaticintgetNum(StringoriginStr,Stringtarg...

C语言strcspn函数详解:字符串的“扫雷探测器”

strcspn是C语言标准库中的一个函数,定义在头文件中。它用于计算从字符串的开始到首次出现任何属于指定字符集合的字符之间的字符数量。换句话说,strcspn计算的是主字符串中不包含指定字符集...

如何使用 Python 的 f-string 进行字符串格式化

Python中的字符串格式化曾经有点麻烦。必须在...

java判断字符串中是否包含某个字符

1使用String类的contains()方法contains()方法用于判断字符串中是否包含指定的字符或字符串。语法如下:publicbooleancontains(CharSequence...

Python基础:f-string不同数据类型的格式化选项,终极指南!

上一篇文章我们介绍了4种字符串格式化方法,其中最现代、最直观的方式是f-string,从Python3.6开始引入,而且时不时就增加一些超级优雅的小改进。今天,钢铁老豆想要继续给大家展开介绍不同数据...

Excel查找指定字符串,返回相应的结果

通过下面的函数,可以实现查找指定字符串,若找到返回“有”,若找不到返回“无”。=IF(ISNUMBER(SEARCH("失业",G3)),"有","无")...

一个list中,有b.a.b.c.b.b.写个方法去掉所有b

importjava.util.ArrayList;importjava.util.List;publicclassRemoveBFromStringList{/**...

掌握Python f-string(掌握催眠能力之后的日常生活)

f-string,通常称为格式化字符串文本,是Python3.6中添加的一项强大功能,它提供了一种将表达式包含在字符串文本中的清晰实用的方法。,...

深入了解字符串:定义、转义字符和字符串下标

字符串是编程中常见的数据类型之一,用于表示文本信息。在绝大多数编程语言中,字符串都是由一系列字符组成的序列,可以包含字母、数字、符号以及空格等。字符串的定义:...

100个Java工具类之70:字符串处理工具类StringUtils

StringUtils是常用的工具类,提供大量处理字符串的静态方法。StringUtils主要特点...

Shell中针对字符串的切片,截取,替换,删除,大小写操作

切片返回字符串变量var的长度...

Sqlite - 常规函数 - RTRIM(sqlite命令行工具)

在SQLite中,RTRIM函数是一个用于处理字符串的函数,其主要作用是移除字符串右侧(尾部)的指定字符。如果不指定要移除的字符,默认会移除字符串右侧的空格字符。以下是对RTRIM函数的详细...

取消回复欢迎 发表评论: