python怎么让输出的数字右对齐_python(格式化输出)

一、%格式化输出

1、整数的输出(参照ASCII)

%o —— oct 八进制

%d —— dec 十进制(digit )

%x —— hex 十六进制

>>> print('%o' % 20)

24

>>> print('%d' % 20)

20

>>> print('%x' % 20)

14

2、浮点数输出

%f —— float 保留小数点后面六位有效数字

%.3f,保留3位小数位

%e —— 保留小数点后面六位有效数字,指数形式输出

%.3e,保留3位小数位,使用科学计数法

%g —— 在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法

%.3g,保留3位有效数字,使用小数或科学计数法

>>> print('%f' % 1.11) # 默认保留6位小数

1.110000

>>> print('%.1f' % 1.11) # 取1位小数

1.1

>>> print('%e' % 1.11) # 默认6位小数,用科学计数法

1.110000e+00

>>> print('%.3e' % 1.11) # 取3位小数,用科学计数法

1.110e+00

>>> print('%g' % 1111.1111) # 默认6位有效数字

1111.11

>>> print('%.7g' % 1111.1111) # 取7位有效数字

1111.111

>>> print('%.2g' % 1111.1111) # 取2位有效数字,自动转换为科学计数法

1.1e+03

3、字符串输出

%s —— string 字符串

%10s —— 右对齐,占位符10位

%-10s —— 左对齐,占位符10位

%.2s —— 截取2位字符串

%10.2s —— 10位占位符,截取两位字符串

>>> print('%s' % 'hello world') # 字符串输出

hello world

>>> print('%20s' % 'hello world') # 右对齐,取20位,不够则补位

hello world

>>> print('%-20s' % 'hello world') # 左对齐,取20位,不够则补位

hello world

>>> print('%.2s' % 'hello world') # 取2位

he

>>> print('%10.2s' % 'hello world') # 右对齐,取2位

he

>>> print('%-10.2s' % 'hello world') # 左对齐,取2位

he

name = input("Name:")

age = int(input("Age:"))

job = input("Job:")

salary = int(input("Salary:"))

msg = """

------------info of %s------------

Name:%s

Age:%d

Job:%s

Salary:%d

----------------end---------------

"""%(name,name,age,job,salary)

print(msg)

二、format 格式化

str.format() 该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号 "{ }" 作为特殊字符代替 "%"

{ } 中不设参数

>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序

'hello world'

>>> "{0} {1}".format("hello", "world") # 设置指定位置

'hello world'

>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置

'world hello world'

{ } 中设置参数

# 通过变量设置参数

print("My name is {name},and I am {age} years old!".format(name = "zhangsan",age = "25"))

# 通过字典设置参数

info = {"name": "zhangsan", "age": "25"}

print("My name is {name},and I am {age} years old!".format(**info))

# 通过列表索引设置参数

msg = ["zhangsan","25"]

print("My name is {0[0]},and I am {0[1]} years old!".format(msg))

---> My name is zhangsan,and I am 25 years old!

---> My name is zhangsan,and I am 25 years old!

---> My name is zhangsan,and I am 25 years old!

str.format() 格式化数字

^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

+ 表示在正数前显示 +,负数前显示 -;  (空格)表示在正数前加空格

>>> print("{:.2f}".format(3.1415926));

3.14

数字格式输出描述

3.1415926

{:.2f}

3.14

保留小数点后两位

3.1415926

{:+.2f}

+3.14

带符号保留小数点后两位

-1

{:+.2f}

-1.00

带符号保留小数点后两位

2.71828

{:.0f}

3

不带小数

5

{:0>2d}

05

数字补零 (填充左边, 宽度为2)

5

{:x<4d}

5xxx

数字补x (填充右边, 宽度为4)

10

{:x<4d}

10xx

数字补x (填充右边, 宽度为4)

1000000

{:,}

1,000,000

以逗号分隔的数字格式

0.25

{:.2%}

25.00%

百分比格式

1000000000

{:.2e}

1.00e+09

指数记法

13

{:>10d}

13

右对齐 (默认, 宽度为10)

13

{:<10d}

13

左对齐 (宽度为10)

13

{:^10d}

13

中间对齐 (宽度为10)

注意:可以使用大括号 {} 来转义大括号

print ("{}今年{{25}}岁了".format("张三"))

标签:输出,格式化,name,format,python,对齐,print,world,hello

来源: https://www.cnblogs.com/Mr-ZY/p/12104357.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值