首页 > 编程知识 正文

python中对字符串的格式化的简单介绍

时间:2023-12-01 15:00:20 阅读:310931 作者:IXOV

本文目录一览:

  • 1、python字符串格式化什么意思
  • 2、python字符串格式化输出方法
  • 3、Python基础(19) - 使用fstring方法格式化字符串
  • 4、Python如何格式化输出字符串!
  • 5、Python 3 格式化字符串的几种方法

python字符串格式化什么意思

在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 存储输出字符的数量放进参数列表的下一个变量中

python字符串格式化输出方法

在python中也有类似于c中的printf()的格式输出标记。在python中格式化输出字符串使用的是版%运算符,通用的形式为 格式标记字符串 % 要输权出的值组 其中,左边部分的”格式标记字符串“可以完全和c中的一致。

Python基础(19) - 使用fstring方法格式化字符串

1.使用fstring方法可以直接格式化

1.fstring方式指的是在字符串中直接使用Python变量,这需要在字符串的前面用f标注

Python如何格式化输出字符串!

python一共有两种格式化输出语法,

一种是类似于C语言printf的方式,称为 Formatting Expression

print '%s %d-%d' % ('hello', 7, 1)

'hello 7-1'

另一种是类似于C#的方式,称为String Formatting Method Calls

print '{0} {1}:{2}'.format('hello', '1', '7')

'hello 1:7'

第一种方式可以指定浮点数的精度,例如

print'%.3f' % 1.234567869

'1.235'

运行时动态指定浮点数的精度

但是当代码在运行中如何动态地通过参数来指定浮点数的精度呢?

python的神奇之处在于它又提供了一种非常方便的语法。只需要在 typecode(这里是f)之前加一个 *,浮点数的精度就用它前面的数字来指定。

 for i in range(5):

...  print'%.*f' % (i, 1.234234234234234)

...

'1'

'1.2'

'1.23'

'1.234'

'1.2342'

通过输出结果可以看出,精度都是在运行时动态指定,这样就省去了格式化字符串的拼凑。

使用 String Formatting Method Calls 可以更简洁地完成功能。

 for i in range(5):

...   print'{0:.{1}f}'.format(1 / 3.0, i)

...

'0'

'0.3'

'0.33'

'0.333'

'0.3333' 

附录是一些常用用法——

python print格式化输出。

1. 打印字符串

print ("His name is %s"%("Aviad"))

2.打印整数

print ("He is %d years old"%(25))

3.打印浮点数

print ("His height is %f m"%(1.83))

4.打印浮点数(指定保留小数点位数)

print ("His height is %.2f m"%(1.83))

5.指定占位符宽度

print ("Name:%10s Age:%8d Height:%8.2f"%("Aviad",25,1.83))

6.指定占位符宽度(左对齐)

print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Aviad",25,1.83))

7.指定占位符(只能用0当占位符?)

print ("Name:%-10s Age:%08d Height:%08.2f"%("Aviad",25,1.83))

8.科学计数法

format(0.0015,'.2e')

Python 3 格式化字符串的几种方法

有的,知道的有三种方式可选。

1、可以用类似C语言的格式化方式,比如:

f = 1.234print("%.2f" % f)

2、使用字符串的format函数.

3、rjust(n)、ljust(n)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。