Python基础 - 字符串格式化方式

liftword2个月前 (03-09)技术文章10

字符串格式化是指将变量等信息按照指定的格式嵌入到字符串中,使其符合特定的显示要求。

Python中字符串格式化方式一般有以下几种:

  • 字符串拼接
  • 使用 % 操作符
  • 使用 str.format()
  • 使用 f-string

字符串拼接

字符串拼接是最简单的字符串格式化方式,通过使用加号 + 将多个字符串片段拼接在一起。

def format_output_by_str_concat(name: str, age: int) -> str:
    """
    以特定的格式返回包含 name 和 age 的字符串

    通过传统的字符串拼接实现,写起来相对麻烦。
    """
    formatted_string = "Name: " + name + ", Age: " + str(age)
    return formatted_string

使用 % 操作符

Python 早期的字符串格式化方式,类似于 C 语言的 printf。

例如:

%d 表示十进制整数

%x 表示十六进制整数

%f 表示浮点数

%s 表示字符串

def format_output_by_c_style(name: str, age: int) -> str:
    """
    以特定的格式返回包含 name 和 age 的字符串

    采用类似C语言风格的字符串格式化方法。
    """
    formatted_string = "Name: %s, Age: %d" % (name, age)
    return formatted_string

使用 str.format()

str.format() 是 Python 2.6 引入的字符串格式化方法,比 % 操作符更灵活。

str.format() 使用 {} 作为变量的占位符,变量名作为 str.format() 的参数。

def format_output_by_str_format(name: str, age: int) -> str:
    """
    以特定的格式返回包含 name 和 age 的字符串

    使用 str.format() 进行字符串格式化。
    """
    formatted_string = "Name: {}, Age: {}".format(name, age)
    return formatted_string

使用 f-string

f-string 是 Python 3.6 引入的一种简洁且高效的字符串格式化方式,也称为插值格式字符串。

f-string 使用 f 作为字符串前缀,使用 {} 作为变量的占位符,变量名放在{}中。

def format_output_by_f_string(name: str, age: int) -> str:
    """
    以特定的格式返回包含 name 和 age 的字符串

    使用 f-string 进行字符串格式化。
    """
    formatted_string = f"Name: {name}, Age: {age}"
    return formatted_string

测试

if __name__ == '__main__':
    name = "张三"
    age = 22

    print(format_output_by_str_concat(name, age))  # 输出: Name: 张三, Age: 22
    print(format_output_by_c_style(name, age))     # 输出: Name: 张三, Age: 22
    print(format_output_by_str_format(name, age))  # 输出: Name: 张三, Age: 22
    print(format_output_by_f_string(name, age))    # 输出: Name: 张三, Age: 22

总结

推荐使用 f-string 或 str.format() 进行字符串的格式化,更推荐使用 f-string,因为 f-string 直接将变量嵌入到字符串中,可读性更友好一些,如果使用 str.format() 需要记住占位符和变量的对应关系。

相关文章

Python实现整数的进制转换

任务要求将十进制整数分别转换为二进制、八进制和十六进制,并将结果在控制台打印输出。任务分析Python提供了bin()、oct()、hex()等内置函数直接完成进制转换,但输出结果包含前缀(如0b)。...

Python中的十六进制与十进制的相互转换

十进制主要运用于日常生活当中,而八进制主要运用于电子技术行业,是为了配合二进制而使用的,二进制是机器能够识别的最直接语言,但是二进制位数太多,不方便记录,所以一般把二进制转化为八进制或十六进制。在这篇...

逐浪字体大师的UNI转码之Excel将十六进制转换成十进制的方法

最近在做字体大师,一款可以快速通过网页进行字体设计,从而生成字体的开放工具,部署于v.ziti163.com,效果如下:在这里插入图片描述因为其中C#需要调用字符码,其读取的是10进制,而字体的uni...

Python 趣味编程:我的压岁钱

题目压岁钱又名压祟钱。是除夕吃完年夜饭,由长辈将事前准备好的钱分给晚辈,是过年习俗之一。今年除夕页面,小明收到了妈妈的 600 元,爸爸的 800 元,奶奶的 800 元,爷爷的 1000 元,姥姥的...

Python二进制、八进制、十进制、十六进制互转

Python二进制、八进制、十进制、十六进制互转在Python中各种进制的转换还是比较方便的,都有内置的方法二进制 bin()八进制 oct()十六进制 hex()十进制 int()通过以上4个方法就...

20.8k Star本科生为你开发的十六进制编辑器

ImHex 是一个十六进制编辑器,用于逆向工程师解码、显示和分析二进制数据格式、提取信息或写入字节补丁的工具。ImHex 的开发者是 WerWolv,他是一名来自瑞士的 23 岁嵌入式系统电子工程师。...