python顺序结构之有输入格式化_顺序结构

  • Post author:
  • Post category:python


(了解) 旧式字符串格式化(% 运算符)

用法:” %说明符 %说明” % (参数1,参数2,……)

转换说明符

说明

%

带百分号输出,不能用在格式化运算符 %中

%b

转换为带符号的二进制形式的字符串,不能用在格式化运算符 %中

%i

转换为带符号的十进制形式的整数,不能用在format中

%d

转换为带符号的十进制形式的字符串

%o

转换为带符号的八进制形式的字符串

%x,%X

转换为带符号的十六进制形式的字符串

%e

转化为科学计数法表示的浮点数(e 小写)

%E

转化为科学计数法表示的浮点数(E 大写)

%f,%F

转化为十进制形式的浮点数

%g

智能选择使用 %f 或 %e 格式

%G

智能选择使用 %F 或 %E 格式

%c

输出整数对应的 Unicode 字符

%r

使用 repr() 将变量或表达式转换为字符串

%s

使用 str() 将变量或表达式转换为字符串

Python 支持的标志

标志

说明

指定左对齐

+

表示输出的数字总要带着符号;整数带+,负数带-。

0

表示宽度不足时补充 0,而不是补充空格。

m.n.

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

#

在八进制数前面显示零(‘0′),在十六进制前面显示’0x’或者’0X'(取决于用的是’x’还是’X’)

事例代码如下:

print(“my name is %s and i am %d years old” %(“xiaoming”,18))

#输出结果:my name is xiaoming and i am 18 years old

print(“Hello,%s” % “Tom”)

#输出结果:Hello,Tom

# %d digit 数字

age = 18

print(‘年龄是:%d’ % age)

age=18.5 # int(18.5)—>18 取整数

print(‘年龄是:%d’ % age)

year=2019

print(‘今年是:%02d’ % year) # 仍然是2019 但是%f就可设置位数

name = “C语言中文网”

age = 8

url = “http://c.biancheng.net/”

print(“%s已经%d岁了,它的网址是%s。” % (name, age, url))

#指定小数精度

f = 3.141592653

# 最小宽度为8,小数点后保留3位

print(“%8.3f” % f)

# 最小宽度为8,小数点后保留3位,左边补0

print(“%08.3f” % f)

# 最小宽度为8,小数点后保留3位,左边补0,带符号

print(“%+08.3f” % f)

print(‘%#x’ % 108) #0x6c 十进制108,十六进制等于6c,int(‘6c’,base=16)

新式字符串格式化(str.format)

1)、使用格式:

<模板字符串中包括{<参数序号>: <格式控制标记>}>.format(<逗号分隔的参数>)

2)、<格式控制标记>用来控制参数显示时的格式,包括:<填充><对齐><宽度>,<.精度><类型>6 个字段,如下图:

format_control_flag.jpg

3)、参数序号从0 开始编号。format 函数可以接受不限个参数,位置可以不按顺序。

如:”{1} {0} {1}”.format(“hello”, “world”) 输出结果为“’world hello world”。

4)、format()方法优点如下:不需要关注数据类型,而在%方法中%s只能替代字符串类型

单个参数可以多次输出,参数顺序可以不相同

填充方式十分灵活,对齐方式十分强大

官方推荐用的方式,%方式将会在后面的版本被淘汰

数字

格式

输出

描述

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)

11

‘{:b}’.format(11)

‘{:d}’.format(11)

‘{:o}’.format(11)

‘{:x}’.format(11)

‘{:#x}’.format(11)

‘{:#X}’.format(11)

1011

11

13

b

0xb

0XB

进制

字符串函数format函数事例代码如下:

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

#’hello world’

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

#’world hello world’

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

#3.14

print(“网站名:{name}, 地址 {url}”.format(name=”菜鸟教程”, url=”www.runoob.com”))

# 通过字典设置参数

site = {“name”: “菜鸟教程”, “url”: “www.runoob.com”}

print(“网站名:{name}, 地址 {url}”.format(**site))

# 通过列表索引设置参数

my_list = [‘菜鸟教程’, ‘www.runoob.com’]

print(“网站名:{0[0]}, 地址 {0[1]}”.format(my_list)) # “0” 是必须的

#列表

>>>list=[‘罗带同心结未成’,’江头潮已平’]

>>>”{0[0]}”.format(list)

‘罗带同心结未成’

>>> print(“这是一句诗:{0[0]}”.format(list))

这是一句诗:罗带同心结未成

#通过字典

>>> di={“学校”:”某某大学”,”姓名”:”我爱学习”}

>>> “地点:{学校},姓名:{姓名}”.format(**di)

‘地点:某某大学,姓名:我爱学习’

f-string格式化

f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,主要目的是使格式化字符串的操作更加简便。f-string在形式上是以 f 或 F 修饰符引领的字符串(f’xxx’ 或 F’xxx’),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式:

f-string 格式化 就是在字符串模板前面加上f,然后占位符使用{} ,里面直接放入对应的数据对象。

salary = input(‘请输入薪资:’)

# 计算出缴税额,存入变量tax

tax = int(salary) *25/100

# 计算出税后工资,存入变量aftertax

aftertax = int(salary) *75/100

print(f’税前薪资是:{salary}元, 缴税:{tax}元, 税后薪资是:{aftertax}元’)