颜色调配网站,软件设计师中级考什么,简单又有创意的公司名称,企业网站建设的文章1. printf 风格
这种格式化语法 和 传统的C语言printf函数 一样 。
salary input(请输入薪资#xff1a;)# 计算出缴税额#xff0c;存入变量tax
tax int(salary) *25/100 # 计算出税后工资#xff0c;存入变量aftertax
aftertax int(salary) *75/100 print(税前薪资 input(请输入薪资)# 计算出缴税额存入变量tax
tax int(salary) *25/100 # 计算出税后工资存入变量aftertax
aftertax int(salary) *75/100 print(税前薪资%s元缴税%s元税后薪资%s元 %(salary,tax,aftertax))其中 %s 就是模板中的占位符表示这个位置先占着待会儿要有数据填入到这里。
然后再提供一个元组里面依次存放需要填入到 %s 位置 的数据。
这里是使用变量 (salary,tax,aftertax) 。
%s 是一种格式化符号 Python 解释器 看到 %s 就会调用内置函数 str()并将对应的格式化对象作为参数传入 返回的结果字符串填入对应占位符。简单说 %s 位置填入的结果就是调用str函数的返回值。
str()内置函数的参数 可以是任何类型的对象比如字符串、 整数、 浮点数、列表、元组 等等都可以。
所以 %s 为占位符 对应的格式化对象 不仅仅是字符串还可以是整数、 浮点数、列表、元组 等等。
格式化字符串里面占位符的个数 必须 和 后面对应的格式化对象个数相同
如果占位符是1个后面的元组里面的格式化对象就应该是1个。像这样
税前薪资%s 元 % (salary,)还记得我们说过 元组里面只有1个元素后面别忘了加个逗号。
像这种只有一个格式化对象的情况下可以直接就用格式化对象不需要放到元组里面像这样
税前薪资%s 元 % salary指定宽度和对齐
如果我们需要将下面这样的3个字符串进行格式化
print(税前薪资%s 元 % 100000)
print(税前薪资%s 元 % 10000)
print(税前薪资%s 元 % 1000)
print(---------------------------------)
print(税前薪资%10s 元 % 100000)
print(税前薪资%10s 元 % 10000)
print(税前薪资%10s 元 % 1000)
print(---------------------------------)
print(税前薪资%-10s 元 % 100000)
print(税前薪资%-10s 元 % 10000)
print(税前薪资%-10s 元 % 1000)得到的结果如下
$ python main.py
税前薪资100000 元
税前薪资10000 元
税前薪资1000 元
---------------------------------
税前薪资 100000 元
税前薪资 10000 元
税前薪资 1000 元
---------------------------------
税前薪资100000 元
税前薪资10000 元
税前薪资1000 元%10s 中的 10 就是指定了格式化结果至少10个字符。
如果希望是左边对齐而不是右边对齐就可以加一个 -
%d 和 %f
占位符除了 %s 还有其它的一些。
常见的是 %d 和 %f 。
%d 用在格式化对象是整数的情况 比如
税前薪资%d 元 % 10000%f 用在 格式化对象 是 浮点数的情况比如
税前薪资%f 元 % 10000.32%s 也可以用来格式化 整数和浮点数但是有些情况下 %d %f 有特别的用处。
比如打印数字的时候我们指定宽度而且希望不足宽度 补零 而不是补空格就可以这样
税前薪资%010d 元 % 100000
税前薪资%010d 元 % 10000
税前薪资%010d 元 % 1000可以得到如下结果
税前薪资0000100000 元
税前薪资0000010000 元
税前薪资0000001000 元对于小数的格式化通常使用 %f如下
税前薪资%010f 元 % 1000.4522
税前薪资%010f 元 % 1008.6621
税前薪资%010f 元 % 1009.3351可以得到如下结果
税前薪资1000.452200 元
税前薪资1008.662100 元
税前薪资1009.335100 元如果我们想保留小数点后面2位数字就可以加上 .2 像这样
税前薪资%010.2f 元 % 1000.4522
税前薪资%010.2f 元 % 1008.6621
税前薪资%010.2f 元 % 1009.3351可以得到如下结果
税前薪资0001000.45 元
税前薪资0001008.66 元
税前薪资0001009.34 元printf格式化官网描述
2. f-string 格式化
f-string 格式化就是在字符串模板前面加上f然后占位符使用{} ,里面直接放入对应的数据对象。Python解释器是3.6 以后的版本才支持。
如下所示
f税前薪资是{salary}元 缴税{tax}元 税后薪资是{aftertax}元完整的代码如下
完整的代码如下
salary input(请输入薪资)# 计算出缴税额存入变量tax
tax int(salary) * 25/100# 计算出税后工资存入变量aftertax
aftertax int(salary) * 75/100print(f税前薪资是{salary}元 缴税{tax}元 税后薪资是{aftertax}元)运行一下可以发现输出结果一样。这种方式更加的直观明了。
指定宽度
同样为了输出对齐我们需要指定填入的字符串的宽度。
方法是在括号里面的变量后面加上 :宽度值
比如
salary 10000
print(f{salary:10}) f{salary:10} 就指定了 宽度为10 个字符 如果填入的字符串不足10个字符就在前面加上空格
比如上面的输出结果就是 salary 10000print(f{salary:10})10000完整的一个示例程序如下
salary 8000
tax int(salary) *25/100
aftertax int(salary) *75/100
print(f税前薪资是{salary:8}元 缴税{tax:8}元 税后薪资是{aftertax:8}元)运行一下结果如下
税前薪资是 8000元 缴税 2000.0元 税后薪资是 6000.0元这样整体就显得很清爽。
左右对齐
上面的输出结果是不足在前面补空格对于数字对象来说缺省为 右边对齐而字符串缺省为 左边对齐 。
比如
下面这个表达式
f|{abc:10}|{300:10}|
结果如下
|abc | 300|指定左右对齐可以在括号里使用 符号
箭头朝左就是左对齐箭头朝右就是右对齐
比如
下面这个表达式
f|{abc:10}|{300:10}|
结果如下
| abc|300 |上面的薪资计算代码中要打印的数字左对齐就可以这样写
def calcTax(salary):tax int(salary) *25/100 aftertax int(salary) *75/100 print(f税前薪资是{salary:8}元 缴税{tax:8}元 税后薪资是{aftertax:8}元)calcTax(8320)
calcTax(15023)
calcTax(100030)运行结果如下
税前薪资是8320 元 缴税2080.0 元 税后薪资是6240.0 元
税前薪资是15023 元 缴税3755.75 元 税后薪资是11267.25元
税前薪资是100030 元 缴税25007.5 元 税后薪资是75022.5 元小数点后位数
如果我们想指定小数点后保留几位可以像这样 {salary:8.1f}
后面的.1f就表示小数点后面保留1位
def calcTax(salary):tax int(salary) *25/100 aftertax int(salary) *75/100 print(f税前薪资是{salary:8.1f}元 缴税{tax:8.1f}元 税后薪资是{aftertax:8.1f}元)calcTax(8320)
calcTax(15023)
calcTax(100030)运行结果如下
税前薪资是 8320.0元 缴税 2080.0元 税后薪资是 6240.0元
税前薪资是 15023.0元 缴税 3755.8元 税后薪资是 11267.2元
税前薪资是100030.0元 缴税 25007.5元 税后薪资是 75022.5元不足补零
如果我们想在不足指定宽度的时候不是补空格而是补数字0可以像这样 {salary:08}
def calcTax(salary):tax int(salary) *25/100 aftertax int(salary) *75/100 print(f税前薪资是{salary:08}元 缴税{tax:08.1f}元 税后薪资是{aftertax:08.1f}元)calcTax(8320)
calcTax(15023)
calcTax(100030)运行结果如下
税前薪资是00008320元 缴税002080.0元 税后薪资是006240.0元
税前薪资是00015023元 缴税003755.8元 税后薪资是011267.2元
税前薪资是00100030元 缴税025007.5元 税后薪资是075022.5元上面的例子是对 数字 的不足补零如果要对 字符串 不足补零就应该 使用符号 或者 同时指定左右对齐方式。 var 34324f{var:08}
Traceback (most recent call last):File stdin, line 1, in module
ValueError: alignment not allowed in string format specifierf{var:08}
34324000f{var:08}
0003432416进制格式化数字
# 用 x 表示格式化为16进制并采用小写格式
f数字65535的16进制表示为{65535:x} # 用 X 表示格式化为16进制并采用大写格式
f数字65535的16进制表示为{65535:X}字符串内容里有花括号
采用 f-string 方式格式化的 字符串内容本身就有 { 或者 } 符号一定要 双写 进行转义否则会被当成是 格式化占位符。
比如 我们要格式化的字符串为 文章中 { 符号 出现了 xx 次
times1 1000
times2 2000print(f文章中 {{ 符号 出现了 {times1} 次)
print(f文章中 }} 符号 出现了 {times2} 次)