第二十七节 format输出Format

  • 前言
  • 实践

前言

在前面的学习中我们已经接触过str.format()的输出格式,本节中我们将进一步学习字符串打印输出的相关内容,并通过一系列的小例子感受使用str.format()输出的便捷。

实践

我们先来定义两个变量:

animal = "cow"
item = "moon"

如果我们想用字符串拼接的方式输出"The cow jumped over the moon"这句话,那就需要用到下述代码:

print("The "+animal+" jumped over the "+item)
>>> The cow jumped over the moon

我们在前面提到过,使用str.format()格式输出需要用到{}占位符,只要保证{}的个数与变量个数相同并且变量出现的顺序与我们预期的一致,那就能打印出我们想要的结果:

print("The {} jumped over the {}".format(animal, item))
>>> The cow jumped over the moon

这个例子中一共用到了两个变量,所以我们需要两个{}占位符,同时第一个位置期望打印"cow"所以我们将变量animal放在第一个位置,第二个位置期望打印"moon",所以我们将变量item放在第二个位置。如果我们颠倒变量的顺序,那打印的内容也会随之改变:

print("The {} jumped over the {}".format(item, animal))
>>> The moon jumped over the cow

当然我们也可以通过索引指定当前占位符表示哪个变量,只需要将变量的位置索引填到{}占位符内部即可:

print("The {0} jumped over the {1}".format(animal, item))
>>> The cow jumped over the moon

不难发现,变量animal的位置索引为0,所以{0}所代替的就是animal,而变量item的位置索引为1,那么{1}所代替的就是变量item。那么,我们改变占位符中的索引也会改变输出结果哦:

print("The {1} jumped over the {0}".format(animal, item))
>>> The moon jumped over the cow

显然两个变量交换位置了,这是因为占位符中的索引改变了,通过指定位置索引的方式,我们可以将一个变量打印多次:

print("The {1} jumped over the {1}".format(animal, item))
>>> The moon jumped over the moon

两个占位符均指向位置为1的变量,所以两个位置均使用变量item替换。那么我们是否可以像函数一样在打印的时候直接指定变量名称并为其赋值呢?其实是可以的:

print("The {animal} jumped over the {item}".format(animal="cow", item="moon"))
>>> The cow jumped over the moon

我们通过为变量赋值并在占位符内部指定变量名称同样可以将变量内容填放至占位符所在位置。我们通过改变占位符所代表变量的名称就可以改变最终的输出结果:

print("The {item} jumped over the {animal}".format(animal="cow", item="moon"))
>>> The moon jumped over the cow

可见,第一个占位符中填写的变量名称换为{item}之后,其代表的变量也发生了改变。就像使用索引一样,我们也可以对不同位置指定相同的变量:

print("The {animal} jumped over the {animal}".format(animal="cow", item="moon"))
>>> The cow jumped over the cow

我们甚至可以将含有占位符的输出格式赋值给一个变量,然后基于这个变量进行进一步的打印输出:

text = "The {} jumped over the {}"
print(text.format(animal, item))
>>> The cow jumped over the moon

通过以上内容不难发现使用str.format()格式输出字符串,其输出方式更加灵活多变。接下来我们介绍基于str.format()的格式输出。我们先开辟一个新的变量name,并对该变量进行打印输出:

name = "Tom"
print("Hello, my name is {}".format(name))
>>> Hello, my name is Tom

我们可以指定在字符串输出时,为变量预留10个字符的宽度:

print("Hello, my name is {:10}. Nice to meet you".format(name))
>>> Hello, my name is Tom       . Nice to meet you

可见,由于Tom只有3个字符宽度,所以产生了7个字符宽度的空格。除此之外,我们还可以指定变量的对齐方式:

print("Hello, my name is {:<10}. Nice to meet you".format(name))
>>> Hello, my name is Tom       . Nice to meet you

以上是左对齐,我们还可以右对齐:

print("Hello, my name is {:>10}. Nice to meet you".format(name))
>>> Hello, my name is        Tom. Nice to meet you

甚至还可以居中对齐:

print("Hello, my name is {:^10}. Nice to meet you".format(name))
>>> Hello, my name is    Tom    . Nice to meet you

对于数值输出,我们可以指定保留的小数位数:

number = 3.14159
print("The number pi is {:.3f}".format(number))
>>> The number pi is 3.142

这里我们指定精确到小数点后3位,并进行四舍五入。对于整数而言,我们也可以用多种方式对其进行打印输出:

number = 1000
print("The number is {:,}".format(number))
>>> The number is 1,000

我们可以为其每3位添加一个逗号,也可以进行进制转换,例如转为二进制:

print("The number is {:b}".format(number))
>>> The number is 1111101000

转为八进制:

print("The number is {:o}".format(number))
>>> The number is 1750

转为十六进制:

print("The number is {:x}".format(number))
>>> The number is 3e8

以及使用科学计数法进行表示:

print("The number is {:e}".format(number))
>>> The number is 1.000000e+03

以上便是format输出的全部内容,感谢大家的收藏、点赞、评论。我们下一节将介绍随机数(Random Numbers),敬请期待~

Python编程基础:第二十七节 format输出Format相关推荐

  1. Python编程基础 第二章 编程练习 (第2轮开课补充)编写程序实现以下功能:计算beg到end之间的所有水仙花数并输出。如果beg到end之间不存在水仙花数,则输出“not found”。

    9 编写程序实现以下功能:计算beg到end之间的所有水仙花数并输出(水仙花数是一个三位整数,其值与各位数字的立方和相等).如果beg到end之间不存在水仙花数,则输出"not found& ...

  2. Python编程基础:第一节 变量Variables

    第一节 变量Variables 前言 字符串类型的变量(str) 整数类型的变量(int) 浮点类型的变量(float) 布尔类型的变量(bool) 前言 变量,简而言之就是一个装有数据的容器,它可以 ...

  3. Python编程基础:第四十一节 继承Inheritance

    第四十一节 继承Inheritance 前言 实践 前言 我们这一节一起来学习类的继承,这里需要首先学习两个概念:父类和子类.我们可以这么想,当定义好一个类以后,我们又有一个新的类,这个新的类需要用到 ...

  4. Python编程基础:第九节 逻辑运算Logical Operators

    第九节 逻辑运算Logical Operators 前言 实践 前言 常用的逻辑运算共分为三种:与(and).或(or).非(not).与运算就是同真才真,有假则假:或运算就是有真则真,同假才假:非运 ...

  5. Python编程基础04:输入与输出

    文章目录 一.IPO模型 二.基本输入 - input()函数 1.函数格式 2.参数说明 3.实例演示 (1)接收字符串数据 (2)接收整型数据 (3)接收浮点型数据 (4)容易出现的错误 三.基本 ...

  6. 1.9 编程基础之顺序查找 02 输出最高分数的学生姓名 python

    http://noi.openjudge.cn/ch0109/02/ 参考: python输出姓名和最高成绩_[Python]1004分排名(20分),Python1004,成绩排名 https:// ...

  7. 课节2: Python编程基础

    课节2: Python编程基础 字符串进阶 字符串索引.切片 切片的语法:[起始:结束:步长] 字符串[start: end: step] 这三个参数都有默认值,默认截取方向是从左往右的 start: ...

  8. python:输出<=n的全部回文数 (高教社,《Python编程基础及应用》习题4-5) (15分)

    题目: 输出<=n的全部回文数 高教社<Python编程基础及应用> [描述]数字121从左往右读与从右往左读是一样的,这种数称为回文数.请使用for循环以及切片方法设计一个程序, ...

  9. Python编程基础——编程环境准备工作

    Python编程基础--编程环境准备工作 Anaconda的安装与使用 介绍 下载与安装(本文仅以Win10为例) Pip的基本使用与镜像源设置 介绍 Pip镜像源设置(本文仅以Win10为例) Pi ...

最新文章

  1. linux 关闭密码复杂化,Linux系统设置复杂密码策略方法
  2. 设计模式C++实现(5)——原型模式、模板方法模式
  3. GAN生成对抗网络-text to image原理与基本实现-文字转图像-11
  4. Mac idea使用Command + p 快捷键查看一个类的构造函数需要传入什么参数
  5. php调用另一个php文件里的变量的值,thinkphp中一个方法调用另一个步骤的变量
  6. mysql卸载权限不够_Linu下启动MySQL结果显示:env: /etc/init.d/mysql:权限不够怎么解决?...
  7. 中移4G模块-ML302-OpenCpu开发-(MQTT连接阿里云-订阅主题)
  8. fast start oracle,Oracle Data Guard快速启动故障切换 - fast-start failover(FSFO)
  9. python入门三剑客_python数据分析三剑客基础之matpoltlib初解
  10. [转载] numpy.ma详解
  11. UE4之蓝图函数分组
  12. 推荐一款日志切割神器!我常用~
  13. 数据库原理及应用(MySQL版)
  14. 计算机术语 gc 是什么意思,gc是什么意思(女生网络用语gc的含义)
  15. CAD迷你看图软件中怎么进行实时缩放建筑图纸的大小?
  16. linux下USB设备编号固定
  17. 谷歌外贸sem与百度内贸sem的不同
  18. leetcode 寻找峰值
  19. 现货白银价格走势分析
  20. 15米 GMSLFPDLink传输线束降速问题

热门文章

  1. Leetcode5635. 构建字典序最大的可行序列[C++题解]:dfs暴搜
  2. 计算机运行黑屏显示器正常,电脑主机运行正常 显示器黑屏
  3. 用C语言实现分治方法数组的排序,C语言实现分治法实例
  4. java中封装日期加时间_java日期处理简单封装
  5. python的replace第i个位置_《原神》第80个绯红玉髓位置一览 第80个绯红玉髓如何获取...
  6. 按键精灵通过句柄获取窗口坐标_使用visual studio 2019 创建简单的Windows窗口「Win32」...
  7. mysql技术内幕innodb存储引擎——表索引算法和锁_(转)Mysql技术内幕InnoDB存储引擎-表索引算法和锁...
  8. python编程快速上手-----让繁琐工作自动化_每周一书《Python编程快速上手 让繁琐工作自动化》分享!...
  9. java 制作报表案例_javaweb项目报表案例
  10. fiddler实现模拟器抓吧_使用Fiddler对手机抓包