45. python %占位符格式化处理

news2024/9/23 17:23:38

45. %占位符格式化处理

文章目录

  • 45. %占位符格式化处理
    • 1.课题导入
    • 2. %占位符概念
    • 3. %d格式化为整数
      • 3.1 %d将整数格式化到指定位置
      • 3.2 %d将浮点数格式化为整数
        • 1. 知识回顾:用int函数将浮点数转换为整数
        • 2. 用%将浮点数格式化为整数
    • 4. %s格式化为字符串
      • 4.1 %s将整数格式化为字符串
      • 4.2 %s将浮点数格式化为字符串
    • 5. 知识拓展
    • 6. 课后练习
    • 7. %占位符格式化语法
    • 8. 总结

1.课题导入

上一节我们学了for循环的嵌套。

for循环嵌套最典型的实操练习就是编写九九乘法表。

1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

怎样才能输出上面的九九乘法表呢?

乍一看,找不到规律,也找不到思路。

别急,我们试着一行一行的来编写。

【目标任务】

原样输出1*1=1

x = 1
y = 1
print(x,'*',y,'=',x*y)
1 * 1 = 1

上面的代码是我们初学者能想到的最快捷的输出方法。

但我们仔细观察,发现:

终端输出是这样的:1 * 1 = 1

题目要求是这样的:1*1=1

看上去终端输出的内容似乎多了一个空格。

但大家看我编写的代码是没有空格的。

那怎样才能输出1*1=1 这样的表达式呢?

我们用Python中的格式化语法就能实现上述要求。

Python格式化语法有很多种。

今天学习最简单快捷的%占位符格式化语法

2. %占位符概念

学校的学生通常采用书本、水杯去自习室占座。

在这里插入图片描述

地铁上的不文明行为:用包占座。

在这里插入图片描述

【备注】上述图片来自书籍《看漫画学Python》。

在Python中,我们通常用%来占位,也就是生活中占座的意思。

因此我将%称为占位符。

它的作用是先在要输出的内容中占一个位置,最后再告诉程序那个被占了的位置要输出什么内容。

语法通常如下:

(要输出的内容 % 需要格式化的变量或数值)

本节我们先体验代码,最后再来讲解语法。

3. %d格式化为整数

【作用】

官方描述:%d的作用是将整数、浮点数转换成十进制表示,并将其格式化到指定位置。

【温馨提示】

我们日常用的数都是十进制数,初学者不用关注十进制表示,重点理解语法和格式化到指定位置即可。

我们可以这样理解%d的作用:

  1. %d将整数格式化到指定位置。

  2. %d将浮点数格式化为整数,并放到指定位置。

decimal[ˈdesɪml]:十进制的。

d可以理解为是decimal的首字母。

%d的意思就可以理解成格式化为十进制的整数。

3.1 %d将整数格式化到指定位置

【实操练习】

原样输出2*4=8

【语法】

(要输出的内容 % 要格式化的变量或数值)

【代码拆解】

  1. 先写要输出的内容2*4=8
print("2*4=8")
  1. 替换需要格式化的地方,即输出内容的数字部分。这里需要的替换的是参与计算的整数,因此用%d去占位。

2用一个%d取替代。

4用一个%d取替代。

8用一个%d取替代。

print("%d*%d=%d")
  1. 添加%占位符。为了语法美观,我通常在%前后都输入一个空格。
print("%d*%d=%d" % )
  1. 最后添加要格式化的数值。
print("%d*%d=%d" % (2, 4, 2*4))
2*4=8

要替换的数值有3个,两个数值之间用英文逗号分隔。

最后一个数值2*4可以直接写8,但为了让计算机自己计算,我写的是2*4

  1. 要格式化的部分也可以是变量。
x = 2
y = 4

print("%d*%d=%d" % (x, y, x*y))
2*4=8

3.2 %d将浮点数格式化为整数

1. 知识回顾:用int函数将浮点数转换为整数

将浮点数3.14和3.9转换成整数。

浮点数转换成整数,直接使用int函数即可。

print(int(3.14))
3
print(int(3.9))
3

注意int转换不会四舍五入,只保留整数部分。

2. 用%将浮点数格式化为整数

x = 3.14
y = 3.9

print('%d' % x)
print('%d' % y)
3
3

格式化也没有四舍五入,只保留整数部分。

4. %s格式化为字符串

【%s的作用】

官方描述:%s的作用是获取传入对象的str方法的返回值,并将其格式化到指定位置。

我们可以这样理解%s的作用:

s可以理解为是字符串str的开头首字母。

%s的作用是将整数格式化为字符串,并放到指定位置。

%s的作用是将浮点数格式化为字符串,并放到指定位置。

作用相当于函数str( )。

4.1 %s将整数格式化为字符串

【实操练习】

原样输出:我的体重是50公斤。

50是整数,是不能和字符串进行拼接输出的。

我们可以使用str函数将其转换成字符串类型。

或者使用%占位符将其格式化为字符串。

【str方法】

print("我的体重是"+str(50)+"公斤。")
我的体重是50公斤。

【%s占位符方法】

【语法】

(要输出的内容 % 要格式化的变量或数值)

【代码拆解】

  1. 先写要输出的内容我的体重是50公斤。
print("我的体重是50公斤。")
  1. 替换需要格式化的地方,即输出内容的数字部分。这里需要替换的是50,50前后都是中文字符,因此用%s去占位。

%s去替换50

print("我的体重是%s公斤。")
  1. 添加%占位符。为了语法美观,我通常在%前后都输入一个空格。
print("我的体重是%s公斤。" % )
  1. 最后添加要格式化的数值。
print("我的体重是%s公斤。" % 50 )
我的体重是50公斤。

这里要替换的数值只有1个,因此数值不需要用英文圆括号。

4.2 %s将浮点数格式化为字符串

【实操练习】

原样输出我的身高是1.68米。

【语法】

(要输出的内容 % 要格式化的变量或数值)

【代码拆解】

  1. 先写要输出的内容我的身高是1.68米。
print("我的身高是1.68米。")
  1. 替换需要格式化的地方,即输出内容的数字部分。这里需要替换的是1.68,1.68前后都是字符串,因此需要用%s去占位。

%s替换1.68

print("我的身高是%s米。"  )
  1. 添加%占位符。为了语法美观,我通常在%前后都输入一个空格。
print("我的身高是%s米。" % )
  1. 最后添加要格式化的数值。
print("我的身高是%s米。" % 1.68)
我的身高是1.68米。

5. 知识拓展

%占位符有很多种用法:

%s:获取传入对象的str方法的返回值,并将其格式化到指定位置。

%o:将整数转换成八进制表示,并将其格式化到指定位置。

%x:将整数转换成十六进制表示,并将其格式化到指定位置。

%d:将整数、浮点数转换成十进制表示,并将其格式化到指定位置。

%f:将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)。

除了上面这些,还有其他的语法。

因为上述语法不常用,因此这里仅介绍%s%d两种常用格式化语法。

6. 课后练习

计算半径为5米的圆的面积。

原样输出半径为5米的圆的面积为?平方米。(?的值需要计算机自己计算)

圆的面积计算公式:s = π*r**2

【平方知识点回顾】

3**2表示2的平方。

print(3**2)
9

2**3表示2的3次方。

print(2**3)
8

2**4表示2的4次方。

print(2**4)
16

【语法】

(要输出的内容 % 要格式化的变量或数值)

【代码拆解】

  1. 先写要输出的内容半径为5米的圆的面积为?平方米。
print("半径为5米的圆的面积为?平方米。")
半径为5米的圆的面积为?平方米。
  1. 替换要格式化的地方,即输出内容的数字部分。因为是跟中文字符一起输出,这里需要替换成字符串类型,因此用%s去替换。

%s替换5

%s替换

print("半径为%s米的圆的面积为%s平方米。")
  1. 添加格式化占位符%。为了美观%前后可以敲一个空格。
print("半径为%s米的圆的面积为%s平方米。" % )
  1. 最后添加要格式化的变量,注意多个变量要用圆括号括起来。这里一共需要格式化2个变量,一个是半径r,一个是面积s。
print("半径为%s米的圆的面积为%s平方米。" % (r,s))

【完整代码】

# 新建变量存储圆的半径
r = 5
π = 3.14
# 圆的面积
s = π*r**2

print("半径为%s米的圆的面积为%s平方米。" % (r,s))
半径为5米的圆的面积为78.5平方米。

7. %占位符格式化语法

(要输出的内容 % 要格式化的变量或数值)

在这里插入图片描述

8. 总结

在这里插入图片描述

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

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

相关文章

论文笔记-时序预测-Triformer

论文标题: Triformer: Triangular, Variable-Specific Attentions for Long Sequence Multivariate Time Series Forecasting 论文链接: https://arxiv.org/abs/2204.13767v1 代码链接: https://github.com/razvanc92/triformer 摘要 各种现…

[附源码]计算机毕业设计基于JEE平台springbt技术的订餐系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Spring源码解析-环境变量

“不积跬步,无以至千里”。 今天聊一聊Spring中环境变量的动态添加和填充Bean属性的时候一些带“$”符号的属性值的解析问题。 因为最近做项目的时候发现了一个有意思的问题,之前也没关注过。因为项目中使用的容器类型是GenericXmlApplicationContext&a…

从GPT-3到CHAT-GPT(CHAT-GPT如何申请)

回顾2020年7月 2020年7月份有一个重大新闻,人工智能科研公司OpenAI,推出了它的新一代语言模型 GPT-3(Generative Pretrained Transformer 3),这个事情在社交媒体影响甚广,甚至有一篇文章《一个新型 AI 震惊…

动态代理详解

目录 一、动态代理_代理模式简介 二、动态代理_JDK动态代理 dynamic 三、动态代理_CGLib动态代理 四、JDK和CGLib动态代理的区别 一、动态代理_代理模式简介 代理模式是23种设计模式之一。设计模式是前人总结的,在软件开发过程遇到常用问题的解决方案&#xff0…

微服务框架 SpringCloud微服务架构 微服务保护 30 初识Sentinel 30.4 引入cloud-demo

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务保护 文章目录微服务框架微服务保护30 初识Sentinel30.4 引入cloud-demo30.4.1 引入cloud-demo30.4.2 微服务整合Sentinel30 初识Sent…

尝试使用CubeMX做stm32开发之十三:Clock Configuration(时钟树配置)

参考《STM32中文参考手册_V10》,研究CubeMX中有关时钟树配置。 一、系统时钟配置 三种不同的时钟源可被用于驱动系统时钟(SYSCLK): HSI振荡器时钟HSE振荡器时钟PLL时钟 时钟源选择对应时钟配置寄存器(RCC_CFGR&…

Android -- 每日一问:修改 SharedPreferences 后两种提交方式有什么区别?

知识点 SharedPreferences 类是一个接口类,真正的实现类是 SharedPreferencesImpl 。修改 SharedPreferences 需要获取它的 Editor,在对Editor进行put操作后,最后通过 commit 或者 apply 提交修改到内存和文件。当然有了两种都可以提交的方法…

Java进程线程介绍创建和执行销毁并理解线程安全和线程池 Native Method

目录1.进程和线程2.多线程的核心3.操作系统的多任务--以非常小的时间间隔交替执行4.native 修饰的方法5.Thread创建线程的两种方式1.普遍采用实现Runnable接口的方式2.继承Thread方式6.自定义线程用 new Thread(Runnable target) 启动源码分析6.1-new Thread(myThread)6.2对实例…

mysql8.0.21安装配置方法图文教程

记录了mysql 8.0.21 的安装配置方法,分享给大家。 一、下载 1、下载安装包 mysql下载路径 2、解压压缩包 3、在此目录下新建my.ini配置文件 [mysqld] # 设置 3306 端口 port3306 # 设置 mysql 的安装目录 basedirD:\mysql-8.0.21-winx64 # 设置 mysql 数据…

破案了!不会讲笑话不会作诗的chatGPT!

热出圈的chatGPT, 必须亲手试试热出圈的chatGPT, 必须亲手试试1 猜猜我是谁2 问网传图片李白风格注释代码3 写个程序看看4 帮我猜猜世界杯(发了发了,偷笑脸)5 知道李白吗?6 那你会写诗吗?6 那你讲脑经急转弯吗&#xf…

linux服务器安装docker(学习中)

linux服务器安装docker1、docker官网寻找官方文档1.1、卸载之前的docker1.2、安装yum工具类1.3、配置docker下载源的地址1.4、安装最新稳定版的docker1.5、启动docker1.6、docker镜像下载加速2、docker-卷-映射和挂载2.1、nginx1、docker官网寻找官方文档 然后根据官网文档进行…

高性能零售IT系统的建设08-9年来在互联网零售O2O行业抗黑产、薅羊毛实战记录及打法

前言 2012年左右转入互联网应用,由于本身在学校时就涉足过远程医疗影像中的DICOM安全领域这块,因此也是机缘巧合我进入互联网第一年就遇上了一次亿级的DDOS攻击以及千万级CC攻击短信系统的对抗。那时在公司一战成名,直接从team leader升到了主…

adb remount原理

1, 输入"fastboot flashing unlock" in adb ,waiting for the device 2, 输入"fastboot flashing unlock_critical"in adb ,waiting for the device 3, 输入"fastboot reboot" reboot the stb, press any key entering the boot mode 4, after…

tensorflow入门(三)tensorflow下神经网络参数的设置

参考 Tensorflow入门 - 云社区 - 腾讯云 神经网络中的参数是神经网络实现分类或回归问题中重要的部分。在tensorflow中,变量(tf.Variable)的作用就是保存和更新神经网络中的参数的。在tensorflow中,变量(tf.Variable)的作用就是保存和更新神经网络的参…

Educational Codeforces Round 123 (Rated for Div. 2) D. Cross Coloring

Problem - D - Codeforces 翻译: 有一张纸,可以用大小为𝑛𝑚:𝑛行和𝑚列的单元格表示。所有的细胞最初都是白色的。 𝑞操作已应用到工作表。他们的𝑖-th可以描述如下: &#x1d4…

前端工程化项目的思考

这是一篇个人使用前端工程开发项目的思考,希望可以帮助到你。完全是一篇综合概念应该是很多东西,我也不清楚会有多少字,估计会对刚刚开始的人看起来比较迷,但也是没有办法的事情 1.前端脚本语言开发的作者我想应该也想不到js会发展…

Spark

1 Spark作业提交流程 2 Spark提交作业参数 1)在提交任务时的几个重要参数 executor-cores —— 每个executor使用的内核数,默认为1,官方建议2-5个 num-executors —— 启动executors的数量,默认为2 executor-memory —— executor…

【OpenCV学习】第9课:形态学操作的应用-提取水平线丶垂直线

仅自学做笔记用,后续有错误会更改 理论 图像在进行形态学操作的时候, 可以通过自定义的结构元素实现结构元素对输入图像的一些对象敏感丶对另外一些对象不敏感, 这样就会让敏感的对象改变而不敏感的对象保留输出。 通过使用两个最基本的形态学操作 - 膨…

华为云服务-运维篇-弹性负载均衡

文章目录一、什么是负载均衡二、我们为什么需要负载均衡1、生活中需要它的类似场景2、生活场景中协调者(负载均衡)作用3、协调者(负载均衡)引入后的变化三、华为云平台-如何做负载均衡弹性负载均衡-ELB四、总结一、什么是负载均衡 负载均衡构建在原有网…