Python编程基础:第二十七节 format输出Format

第二十七节 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编程基础,字符串,python,编程语言)