Python学习基础笔记六十七——格式化字符串

news2024/11/19 10:47:33

Printf-Style String Formatting: Printf风格字符串格式化

salary = input('请输入薪资:')

# 计算出缴税额,存入变量tax
tax = int(salary) *25/100  
# 转化为字符串,方便下面的字符串拼接
taxStr = str(tax)  

# 计算出税后工资,存入变量aftertax
aftertax = int(salary) *75/100  
# 转化为字符串,方便下面的字符串拼接
aftertaxStr = str(aftertax)  

print('税前薪资是:' + salary + '元, 缴税:' + taxStr + '元, 税后薪资是:' + aftertaxStr + '元')

字符串的多次拼接比较麻烦,一不下心就可能漏掉一个加号或者引号。

如果我们写成:

税前薪资是 x 元, 缴税:y 元, 税后薪资是:z 元

然后,我们直接将计算好的税前薪资、缴税、税后薪资分别作为x、y、z填入进去。

那这样就不需要麻烦的字符串拼接了。

Python支持这样的操作,这样的操作称为字符串的格式化。

printf格式化字符串的方式:

salary = input('请输入薪资:')

# 计算出缴税额,存入变量tax
tax = int(salary) * 25 / 100
# 转化为字符串,方便下面的字符串拼接
taxStr = str(tax)

# 计算出税后工资,存入变量aftertax
aftertax = int(salary) * 75 / 100

# 转化为字符串,方便下面的字符串拼接
aftertaxStr = str(aftertax)

print('税前薪资:%s 元, 缴税:%s 元, 税后薪资:%s 元' % (salary, taxStr, aftertaxStr))

税前薪资:%s 元, 缴税:%s 元, 税后薪资:%s 元

这个是一个模板,%s就是模板中的占位符,表示这个位置先占着,待会儿有数据要填入到这里。

然后再提供一个元组,里面依次放需要填入到%s位置的数据。

%s 是一种格式化符号, Python 解释器 看到 %s , 就会调用内置函数 str()并将对应的 格式化对象 作为 参数传入 , 返回的结果字符串填入对应占位符。

简单说 %s 位置填入的结果,就是调用str函数的返回值。

str()内置函数的参数 可以是任何类型的对象,比如:字符串、 整数、 浮点数、列表、元组 等等,都可以。

所以 %s 为占位符, 对应的格式化对象, 不仅仅是字符串,还可以是整数、 浮点数、列表、元组 等等。

salary = input('请输入薪资:')

# 计算出缴税额,存入变量tax
tax = int(salary) * 25 / 100
# 转化为字符串,方便下面的字符串拼接
# taxStr = str(tax)

# 计算出税后工资,存入变量aftertax
aftertax = int(salary) * 75 / 100

# 转化为字符串,方便下面的字符串拼接
# aftertaxStr = str(aftertax)

print('税前薪资:%s 元, 缴税:%s 元, 税后薪资:%s 元' % (salary, tax, aftertax))

格式化字符串里面占位符的个数必须和后面元组中对应的格式化对象数量相同。

记住,元组中只有1个元素的时候,后面别忘了要加一个逗号。

salary = input('请输入薪资:')

# 计算出缴税额,存入变量tax
tax = int(salary) * 25 / 100
# 转化为字符串,方便下面的字符串拼接
# taxStr = str(tax)

# 计算出税后工资,存入变量aftertax
aftertax = int(salary) * 75 / 100

# 转化为字符串,方便下面的字符串拼接
# aftertaxStr = str(aftertax)

print('税前薪资:%10d 元, 缴税:%10d 元, 税后薪资:%10d 元' % (int(salary), int(tax), int(aftertax)))

格式化要求对齐好看,才会有这种需求。

 

可以参考官网:

f-string格式化字符串:

salary = input('请输入薪资:')

# 计算出缴税额,存入变量tax
tax = int(salary) * 25 / 100

# 计算出税后工资,存入变量aftertax
aftertax = int(salary) * 75 / 100

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

那这种方式是更加直观,操作起来更加方便。

需要注意的是,这个功能是在python3.6之后的版本才支持。

f-string格式指定宽度:

公共的代码写到函数中,调用这个函数,把变化的值作为参数传进来。

def calcTax(salary):
    # 计算出缴税额,存入变量tax
    tax = int(salary) * 25 / 100
    # 计算出税后工资,存入变量aftertax
    aftertax = int(salary) * 75 / 100
    print(f'税前薪资是:{salary:10}元, 缴税:{tax:10}元, 税后薪资是:{aftertax:10}元')


calcTax(8000)
calcTax(10000)
calcTax(15000)

左对齐:

def calcTax(salary):
    # 计算出缴税额,存入变量tax
    tax = int(salary) * 25 / 100
    # 计算出税后工资,存入变量aftertax
    aftertax = int(salary) * 75 / 100
    print(f'税前薪资是:{salary:<10}元, 缴税:{tax:<10}元, 税后薪资是:{aftertax:<10}元')


calcTax(8000)
calcTax(10000)
calcTax(15000)

右对齐就使用>符号。

小数点位数:

def calcTax(salary):
    # 计算出缴税额,存入变量tax
    tax = int(salary) * 25 / 100
    # 计算出税后工资,存入变量aftertax
    aftertax = int(salary) * 75 / 100
    print(f'税前薪资是:{salary:<10.2f}元, 缴税:{tax:<10.2f}元, 税后薪资是:{aftertax:<10.2f}元')


calcTax(8000)
calcTax(10000)
calcTax(15000)

这样整体还是比较整齐,比较美观。

不足补零:

def calcTax(salary):
    # 计算出缴税额,存入变量tax
    tax = int(salary) * 25 / 100
    # 计算出税后工资,存入变量aftertax
    aftertax = int(salary) * 75 / 100
    print(f'税前薪资是:{salary:>010.2f}元, 缴税:{tax:>010.2f}元, 税后薪资是:{aftertax:>010.2f}元')


calcTax(8000)
calcTax(10000)
calcTax(15000)

在工作中,可以多看Python的官方文档。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1095182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux基础—1

1、命令行 1) 重要快捷键 按键作用Tab命令补全Ctrl强行终止当前程序Ctrld键盘输入结束或退出终端Ctrls暂停当前程序&#xff0c;暂停后按下任意键恢复运行Ctrlz将当前程序放到后台运行&#xff0c;恢复到前台为命令fgCtrla将光标移至输入行头&#xff0c;相当于Home键Ctrle将…

计算机操作系统-第六天

目录 1、操作系统的体系结构&#xff08;简要了解&#xff09; 操作系统的内核&#xff1a; 操作系统的体系结构 关于微内核的相关理解&#xff1a; 本节思维导图&#xff1a; 1、操作系统的体系结构&#xff08;简要了解&#xff09; 操作系统的内核&#xff1a; 内核是…

整理总结提高抖音小店商品转化率的五大策略

要提高抖音小店的商品转化率&#xff0c;即将浏览者转化为实际购买者&#xff0c;四川不若与众整理了需要注意的以下几个关键因素。 首先&#xff0c;优化商品页面设计。商品页面是消费者获取产品信息和决策的关键环节。商家应确保商品页面简洁清晰&#xff0c;配备高质量的产品…

Pytest+Allure生成可添加附件的测试报告

#测试套件层级 allure.feature("测试PecExplorer") #重试次数&#xff0c;粒度为用例&#xff0c;建议用例设计可重复性高 pytest.mark.flaky(reruns3) class TestPecExplorer:#功能模块层级allure.story("登录界面")#测试用例层级allure.title("Test…

C语言程序设计 三四节课堂笔记

C语言程序设计 三四节课堂笔记 C语言程序设计 三四节课堂笔记3.0 程序编写顺序&#xff08;了解&#xff09;3.1 C语言的特点3.2 认识C程序1. C程序的基本框架2. C语言程序的结构特点3. C程序的开发过程 C语言程序设计 第四节课4.1 开发环境dev-C的使用1. 如何将英文界面调整为…

Spring-Java

Spring&#xff1a; 图片出处&#xff1a;b站黑马 ssm学习截图 是一个大家族 &#xff0c;是一套完整的开发生态圈。可以利用这个spring全家桶快速构建企业级开发环境。 Spring Freamwork 是其他框架的基础 Springbot 使用了注解开发 SpringCloud 分布式 云服务 Sprin…

Leetcode—88.合并两个有序数组【简单】

2023每日刷题&#xff08;一&#xff09; Leetcode—88.合并两个有序数组 题解 因为这两个数组已经排好序&#xff0c;我们可以把两个指针分别放在两个数组的末尾&#xff0c;即 nums1 的m − 1 位和 nums2 的 n − 1 位。每次将较大的那个数字复制到 nums1 的后边&#xff0…

计算机操作系统面试题自用

什么是操作系统&#xff1a; 操作系统是管理硬件和软件的一种应用程序。操作系统是运行在计算机上最重要的一种软件 操作系统的主要功能 解释一下操作系统的主要目的是什么 操作系统是一种软件&#xff0c;它的主要目的有三种 1 管理计算机资源&#xff0c;这些资源包括 C…

LangChain结合milvus向量数据库以及GPT3.5结合做知识库问答之一 --->milvus的docker compose安装

https://github.com/milvus-io/milvus/releaseshttps://github.com/milvus-io/milvus/releases 以下步骤均在Linux环境中进行&#xff1a; 将milvus-standalone-docker-compose.yml下载到本地。 1、新建一个目录milvus 2、将milvus-standalone-docker-compose.yml放到milvu…

UWB承启定位基站

UWB承启定位基站 随着我们使用UWB做超高精度的定位项目越来越多&#xff0c;我们发现之前的定位基站完全站在二维或三维的角度去设计还是存在对应的缺陷&#xff0c;这个时候需要在很短的距离内安装多一个基站&#xff0c;对于用户来说&#xff0c;会觉得设备变多了&#xff0…

05在IDEA中配置Maven的基本信息

配置Maven信息 配置Maven家目录 每次创建Project工程后都需要设置Maven家目录位置&#xff0c;否则IDEA将使用内置的Maven核心程序和使用默认的本地仓库位置 一般我们配置了Maven家目录后IDEA就会自动识别到conf/settings.xml配置文件和配置文件指定的本地仓库位置创建新的P…

Java中的栈(Stack)为什么要采用先进后出

Java虚拟机栈 Java虚拟机栈是描述Java方法运行过程的内存模型。 当一个方法即将被运行时&#xff0c;Java虚拟机栈首先会在Java虚拟机栈中为该方法创建一块“栈帧”&#xff0c;栈帧中包含局部变量表(基本数据类型变量、引用类型的变量、returnAddress类型的变量)、操作数栈、…

小谈设计模式(29)—访问者模式

小谈设计模式&#xff08;29&#xff09;—访问者模式 专栏介绍专栏地址专栏介绍 访问者模式角色分析访问者被访问者 优缺点分析优点将数据结构与算法分离增加新的操作很容易增加新的数据结构很困难4 缺点增加新的数据结构比较困难增加新的操作会导致访问者类的数量增加34 总结…

windows10系统-16-制作导航网站WebStack-Hugo

上个厕所功夫把AI导航搞定了 使用Hugo搭建静态站点 如何使用Hugo框架搭建一个快如闪电的静态网站 1 Hugo 参考Hugo中文文档 参考使用Hugo搭建个人网站 Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。 1.1 安装Hugo 二进制安装&#xff08;推荐…

iMeta框架使用方法

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

判断一棵树是否为完全二叉树——层序遍历

完全二叉树&#xff08;包括满二叉树 &#xff09; 利用层序遍历&#xff0c;当取顶取到空的时候&#xff08;这个时候取的这一层的所有节点是一定在队列里面的&#xff09;&#xff0c;就结束入队&#xff0c;然后判断他的后面的节点是否都为空 这里重点还是要理解二叉树的层…

求二叉树的高度——函数递归的思想

二叉树的高度&#xff1a;左右两个数最高的那个的1 int TreeHight(BTNode* root) {if (root NULL){return 0;}int lefhightTreeHight(root->left);int righthight TreeHight(root->right);return lefhight > righthight ? TreeHight(root->left) 1 : TreeHight…

集合的进阶

不可变集合 创建不可变的集合 在创建了之后集合的长度内容都不可以变化 静态集合的创建在list &#xff0c;set &#xff0c;map接口当中都可以获取不可变集合 方法名称说明static list of(E …elements)创建一个具有指定元素集合list集合对象staticlist of(E…elements)创…

51系列—基于51单片机的RS232通信示例

一、目录 1、51单片机串口通信的应用 2、PC控制单片机IO口输出 3、51单片机控制实训指导及综合应用实例 4、51单片机给计算机发送数据 二、实验任务 单片机串口通信的应用&#xff0c;通过串口&#xff0c;我们的个人电脑和单片机系统进行通信。个人电脑作为上位机&#xff…

高能整理,性能测试-寻找TPS性能拐点与脚本Error报错排查(超细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 寻找tps性能拐点 …