python的格式化控制符_说说Python中的格式化操作符(%)

今天去深圳浪了一圈,累到不行,本来想直接摸了,但是还是决定再睡前复习一下。那今天想说说Python中跟print一起出现的格式化操作符

什么是格式化操作符?

我自己理解的是,在输出一串结果前,你可能希望你的结果按照某种格式/结构输出,比如说你现在有一个列表:

name_list = [{'name':'Ryan','age':27},{'name':'Robin','age':26}]

而你希望的输出是:

Ryan is 27 years old

Robin is 26 years old

这个时候,你就需要格式化操作符了,事实上,Python中的格式化操作符并非只有(%)一种,但是%无疑是最简便也是最常用的一种。

以下复制粘贴一下Python简明教程里的格式化符号,方便今后查询:

格式化符号

说明

%s

字符串 采用str()的显示 (面向用户)

%r

字符串 采用repr()的显示 (面向电脑)

%c

单个字符

%b

二进制整数

%d

十进制整数

%o

八进制整数

%x

十六进制整数

%e

指数 (基底写为e)

%f

浮点数

%g

指数(e)或浮点数

%%

输出% (格式化字符串里面包括百分号,那么必须使用%%)

以下是一些例子,方便我们理解上面的操作符:

格式化输出数字

num = 100

print "%d to hex is %x" %(num, num) #hex:十六进制

print "%d to hex is %X" %(num, num)

print "%d to hex is %#x" %(num, num)

print "%d to hex is %#X" %(num, num)

output:

100 to hex is 64

100 to hex is 64

100 to hex is 0x64

100 to hex is 0X64

#在上面的输入中,“#”是格式化操作的辅助符号,表示在八进制数前面显示零(0),在十六进制前面显示"0x"或者”0X"

# 浮点数

f_num = 3.1415926

print "value of f_num is: %.4f" %f_num

print "value of f_num is: %.*f" % (4, f_num)

output:

value of f_num is: 3.1416

value of f_num is: 3.1416

#上面两种浮点数的输出方法,一种是%.4f, 在操作符里制定浮点位数为4,一种是%(4.f_num),在操作符后的元组中制定浮点位数为4

#dict参数

name_list = [{'name':'Ryan','age':27},{'name':'Robin','age':26}]

for student in name_list:

print ('%(name)s is %(age)d years old'% student)

output:

Ryan is 27 years old

Robin is 26 years old

#tuple参数:

user_id = [('James', 1410),('Lily', 1411),('Tesla', 1412)]

for user in user_id:

print ("%s's user id is %d" % user)

output:

James's user id is 1410

Lily's user id is 1411

Tesla's user id is 1412

事实上,在新版的Python中,引入了string模块,里面的format()函数能更好的完成格式化的工作,这里借用stack overflow中的一个答案:

>>> tup = (1,2,3)

>>> print "First: %d, Second: %d, Third: %d" % tup

>>> print 'First: {}, Second: {}, Third: {}'.format(1,2,3)

>>> print 'First: {0[0]}, Second: {0[1]}, Third: {0[2]}'.format(tup)

First: 1, Second: 2, Third: 3

First: 1, Second: 2, Third: 3

First: 1, Second: 2, Third: 3

在这个话题下面,还可以引申出Template函数的运用,我们下次再说。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值