`

【转】Python字符串格式化

 
阅读更多

字符串的格式化

 http://www.cnblogs.com/JerySpace/archive/2010/12/17/1909621.html

 

在python中也有类似于c中的printf()的格式输出标记。在python中格式化输出字符串使用的是%运算符,通用的形式为

  • 格式标记字符串 % 要输出的值组

其中,左边部分的”格式标记字符串“可以完全和c中的一致。右边的'值组'如果有两个及以上的值则需要用小括号括起来,中间用短号隔开。重点来看左边的部分。左边部分的最简单形式为:

  • %cdoe

其中的code有多种,不过由于在python中,所有东西都可以转换成string类型,因此,如果没有什么特殊需求完全可以全部使用’%s‘来标记。比如:

  • '%s %s %s' % (1, 2.3, ['one', 'two', 'three'])

它的输出为'1 2.3 ['one', 'two', 'three']',就是按照%左边的标记输出的。虽然第一个和第二值不是string类型,一样没有问题。在这个过程中,当电脑发现第一个值不是%s时,会先调用整型数的函数,把第一个值也就是1转成string类型,然后再调用str()函数来输出。前面说过还有一个repr()函数,如果要用这个函数,可以用%r来标记。除了%s外,还有很多类似的code:

  • 整型数:%d
  • 无符号整型数:%u
  • 八进制:%o
  • 十六进制:%x   %X
  • 浮点数:%f
  • 科学记数法: %e   %E
  • 根据数值的不同自动选择%e或%f: %g
  • 根据数值的不同自动选择%E或%f: %G

就跟前面说用\进行转义一样,这里用%作为格式标记的标识,也有一个%本身应该如何输出的问题。如果要在”格式标记字符串“中输出%本身,可以用%%来表示。
上面说的只是格式标记的最简间的形式,来看复杂一点的:

  • ‘%6.2f’ % 1.235

在这种形式中,在f的前面出现了一个类似小数的6.2它表示的意思是,总共输出的长度为6个字符,其中小数2位。还有更复杂的:

  • ‘%06.2f’ % 1.235

在6的前面多了一个0,表示如果输出的位数不足6位就用0补足6位。这一行的输出为‘001.24’,可以看到小数也占用一位。类似于这里0这样的标记还有-、+。其中,-表示左对齐,+表示在正数前面也标上+号,默认是不加的。最后来看最复杂的形式:

  • ‘%(name)s:%(score)06.1f’ %{'score':9.5, 'name':'newsim'}

这种形式只用在要输出的内容为dictionary(一种python的数据类型)时,小括号中的(name)和(score)对应于后面的键值对中的键。前面的例子可以看到,”格式标记字符串“中标记的顺序和"要输出的值组"中的值是一一对应的,有顺序,一对一,二对二。而在这种形式中,则不是,每个格式标记对应哪个值由小括号中的键来指定。这行代码的输出为:'newsim:0009.5'。

 

有时候在%6.2f这种形式中,6和2也不能事先指定,会在程序运行过程中再产生,那怎么输入呢,当然不能用%%d.%df或%d.%d%f。可以用%*.*f的形式,当然在后面的”要输出的值组“中包含那两个*的值。比如:'%*.*f' % (6, 2, 2.345)就相当于'%6.2f' % 2.345。

 

这是这本书到此为止看起来最复杂的内容。不过如果记不住,或不想那么耐烦,完全可以全部用%s代替,或者用多个"+"来构造类似的输出字符串。这里的%真有点除法的味道,怪不得设计者会选择用%这个除号。

 

 

象C 中的sprintf函数一样,可以用“%”来格式化字符串。

Table 3.1. 字符串格式化代码

格式 描述
%% 百分号标记
%c 字符及其ASCII码
%s 字符串
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)
%X 无符号整数(十六进制大写字符)
%e 浮点数字(科学计数法)
%E 浮点数字(科学计数法,用E代替e)
%f 浮点数字(用小数点符号)
%g 浮点数字(根据值的大小采用%e或%f)
%G 浮点数字(类似于%g)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中
分享到:
评论

相关推荐

    字符串格式化需求规格说明书

    1. **格式化字符串的基本语法**:在各种编程语言中,如Python的f-string、C++的printf、Java的String.format等,都有各自的字符串格式化方法。理解这些语法对于正确地构造和输出格式化的字符串至关重要。 2. **变量...

    Python字符串格式化%s%d%f详解

    Python字符串格式化是一种强大的工具,用于构建动态生成的字符串,其中可以嵌入变量的值。在Python中, `%` 操作符被用来进行格式化,它支持多种类型的格式化符号,如 `%s`, `%d`, `%f` 等。这些符号在不同的上下...

    字符串格式化问题

    虽然`json.dumps()`主要是用于将Python对象转换为JSON格式的字符串,但在某些情况下,它也能作为一个简单的字符串格式化工具,特别是当需要以JSON友好的格式输出数据时。 理解并熟练掌握这些字符串格式化方法,...

    python格式化时间字符串

    python格式化各种形式的时间字符串,输出标准格式XXXX-XX-XX XX:XX:XX。

    Python字符串格式化输出方法分析

    Python字符串格式化是编程中常见的任务,用于将变量值插入到字符串模板中,以生成具有动态内容的输出。本文将详细分析Python中的三种主要字符串格式化方法:元组占位符、`format`方法和字典占位符。 1. **元组占位...

    python 字符串.zip

    Python字符串是编程语言中至关重要的数据类型,用于存储和处理文本信息。在Python中,字符串是不可变的,意味着一旦创建,就不能改变其内容。这个特性使得字符串在处理文本时非常安全,但也意味着如果需要修改,必须...

    Python 字符串、内建函数.doc

    "Python 字符串、内建函数" Python 字符串是 Python 中最常用的数据类型。我们可以使用引号('或")... Python 字符串运算符有多种操作符号, Python 字符串格式化可以将一个值插入到一个有字符串格式符 %s 的字符串中。

    学学Python_字符串03_格式化练习

    接下来,`stringFormatPrint.py`文件可能涉及到了Python的字符串格式化打印。在Python 3中,有多种格式化方式。传统的`%`操作符类似于C语言的printf风格,如`'Name is %s, age is %d' % ('Alice', 25)`。更现代的是`...

    Python字符串调用方法及实例

    在Python编程语言中,字符串是不可变的数据类型,但提供了丰富的操作方法来处理字符串。这里我们将深入探讨在Python 3.1版本中的字符串调用方法,包括大小写转换、输出对齐、检索、分割与组合以及字符串的更改。 1....

    学学Python_字符串07_字典的格式化字符串

    本主题将深入探讨如何使用字典进行字符串格式化,这是Python中一种灵活且强大的方式。 首先,我们来看看标题提到的“学学Python_字符串07_字典的格式化字符串”。这表明我们将关注如何利用Python中的字典来格式化...

    Python 字符串深度总结_Python 字符串深度总结

    Python支持多种字符串格式化方式,包括传统的`%`操作符,`str.format()`方法,以及现代的f-string(格式化字符串字面量)。 ```python # %操作符 name = 'Alice' age = 25 print('My name is %s and I am %d years ...

    python字符串思维导图(基本全覆盖)

    Python 字符串格式化(基本全覆盖) 在 Python 中,字符串格式化是一个非常重要的概念。字符串格式化可以将变量的值插入到字符串中,从而使得字符串更加灵活和实用。本文将对 Python 字符串格式化进行详细的介绍,...

    学学Python_字符串02_格式化

    我们将基于标题“学学Python_字符串02_格式化”和提供的描述,讨论Python中的字符串格式化技术。 在Python 2.x中,字符串格式化通常使用`%`操作符,而在Python 3.x中,引入了更强大且灵活的`str.format()`方法。...

    Python字符串格式化

    ### Python字符串格式化详解 #### 一、引言 在Python中,字符串是处理文本数据的基本数据类型之一。为了使程序输出的信息更加易读、美观,开发者常常需要对字符串进行格式化处理。其中,`%`操作符是早期Python版本...

    python-format-js:字符串格式化,如 Python 的 .format()

    字符串格式化,如 Python 的 .format() Obs:预期结果与Python相同 安装 节点 安装: $ npm install python-format-js 要么 $ yarn add python-format-js 要求: const format = require ( "python-format-js...

    python 字符串格式化的示例

    在Python编程语言中,字符串格式化是一个非常重要的概念,它允许我们动态地构造字符串,将变量的值插入到预定义的模板中。本文主要探讨了三种不同的字符串格式化方法:旧式的`%`操作符、`str.format()`方法以及最新...

    Python字符串拼接方法详解.docx

    第三种字符串拼接方法是使用“%s”字符串格式化的方式。例如: ``` a = 'hello' b = 'python' c = '!' print('%s %s %s' % (a, b, c)) # 输出:hello python ! ``` 这种方法的特点是%s 当占位符在前面的字符串中占一...

    Python 如何在字符串中插入变量

    过去,人们有时会使用`%`操作符或`string.Template`类进行字符串格式化: ```python name = 'Guido' n = 37 '%(name)s has %(n)d messages.' % vars() import string s = string.Template('$name has $n messages....

Global site tag (gtag.js) - Google Analytics