- 1.课题导入
- 2.知识回顾
- 3.
.format
的基本用法- 3.1{}为空
- 3.2 {}中有编号
- 3.3 {}中有变量名
- 4.浮点数的格式化
- 5.
.format
官方语法 -
.format
格式化语法总结
-
- 总结
- 8.课堂练习
1.课题导入
【描述】
用input函数输入你每个月的工资、每天消费的平均值及本月的天数,编写代码输出你当月的余额(假设有剩余)。
【参考】
输入
9000
80
31
输出
本月我还剩余6520.0元。
【备注】月工资为9000元,平均每天消费80元,本月有31天。
【体验代码】
字符串拼接法:
# input函数输入你的月工资,用变量gz存储
gz = input('你每月的工资是多少元?')
# input函数输入你每天的平均消费,用变量xf存储
xf = input('你平均每天消费多少钱?')
# input函数输入本月的天数,用户变量x存储
x = input('本月有多少天?')
# 余额=工资-平均消费*天数
yu = float(gz) - float(xf)*int(x)
print('本月我还剩余'+str(yu)+'元。')
【终端输出】
本月我还剩余6520.0元。
【代码解析】
input
函数获取的内容是字符串类型。如果获取的内容是需要用于计算的数字,要先将字符串转换成整数或浮点数。float(gz)
和float(xf)
用float函数将终端输入的内容转换成浮点数参与计算。int(x)
用int函数将输入的内容转换成整数参与计算。yu = float(gz) - float(xf)*int(x)
得到的数据类型是浮点数。str(yu)
用str函数将yu
的数据类型转换成字符串和前面的字符进行拼接。
2.知识回顾
上面的代码需要同时输出文本信息和变量,我们用了字符串拼接的方法。
我们发现输出有数值变量的一句话要先判断变量的数据类型,然后用函数统一数据类型,操作比较麻烦。
除了字符串拼接方法,同时输出文本信息和变量,我们还可以用更便捷的方法:字符串格式化。
之前我们学了一种格式化方法:%占位符格式化。
我们先回顾 %
占位符格式化语法。
【目标任务】
【描述】
输入自己的姓名、籍贯和毕业学校,按指定的格式输出到屏幕上。
【输入】
第一行输入姓名。
第二行输入籍贯。
第三行输入毕业学校。
【输出】
大家好,我叫XXX,来自XXX,毕业于XXX!
【示例】
输入:
安迪
云南
复旦大学
输出:
大家好,我叫安迪,来自云南,毕业于复旦大学!
【体验代码1】
name = input()
city = input()
school = input()
print("大家好,我叫%s,来自%s,毕业于%s! " % (name,city,school))
【终端输出】
大家好,我叫安迪,来自云南,毕业于复旦大学!
- 3个
%s
是我要替换的内容。 %
是占位符格化语法,是固定用法。name,city,school
是我要替换%s
的变量,我也称它们为要格式化的变量。
3..format
的基本用法
本节我们学第2种字符串格式化方法。
format[ˈfɔːmæt]:格式。
.format
的通常有3种用法:
{}
为空。{}
中有编号。{}
中有变量名。
3.1{}为空
为了讲解方便,这里我直接给变量赋值,不再从终端获取数据。
name = "安迪"
city = "云南"
school = "复旦大学"
print("大家好,我叫{},来自{},毕业于{}!".format(name, city, school))
【终端输出】
大家好,我叫安迪,来自云南,毕业于复旦大学!
【编写思路】
一.编写格式化模板。
- 我们要输出的内容是:
大家好,我叫安迪,来自云南,毕业于复旦大学!
- 把要格式化的内容用英文大括号
{}
替换:
安迪
替换为大括号{}
。
云南
替换为大括号{}
。
复旦大学
替换为大括号{}
。
格式化模板为:"大家好,我叫{},来自{},毕业于{}!"
二. 语法关键字。
- 输入一个英文小圆点
.
format
关键字
三. 要格式化的变量。
(name, city, school)
英文圆括号中写入要格式化的变量名。
【语法解析】
{}
为空时默认按格式化变量的顺序自动格式化到大括号中。
【调整格式化变量的顺序】
将(name, city, school)
顺序调整为(school, name, city)
。
运行下面的代码,观察输出结果。
name = "安迪"
city = "云南"
school = "复旦大学"
print("大家好,我叫{},来自{},毕业于{}!".format( school, name, city))
【终端输出】
大家好,我叫复旦大学,来自安迪,毕业于云南!
观察输出结果,我们发现在{}
为空时,它是按照后面要格式化变量的顺序进行填充的。
因为school
在第1个,它替换了第1个{}
,输出内容变成了我叫复旦大学。
{}
为空时需要重点关注要格式化变量的顺序。
【{ }中输入了一个空格】
name = "安迪"
city = "云南"
school = "复旦大学"
print("大家好,我叫{ },来自{ },毕业于{ }!".format( school, name, city))
【终端输出】
KeyError: ' '
在编写格式化模板时,我在{}
中敲了一个空格。
我叫{}
变成我叫{ }
。
观察输出结果,程序报错。
初学者千万注意,这里的{}
中是不能写入空格的。
3.2 {}中有编号
print("大家好,我叫{0},来自{1},毕业于{2}!".format("安迪", "云南","复旦大学"))
【终端输出】
大家好,我叫安迪,来自云南,毕业于复旦大学!
【编写思路】
一.编写格式化模板。
- 我们要输出的内容是:
大家好,我叫安迪,来自云南,毕业于复旦大学!
- 把要格式化的内容用英文大括号加编号
{编号}
替换:
安迪
替换为{0}
。
云南
替换为{1}
。
复旦大学
替换为{2}
。
格式化模板为:"大家好,我叫{0},来自{1},毕业于{2}!"
二. 语法关键字。
- 输入一个英文小圆点
.
format
关键字
三. 要格式化的内容。
("安迪", "云南", "复旦大学")
英文圆括号中写入要格式化的内容。
【语法解析】
{编号}
:大括号中有编号时,按照格式化变量的编号顺序进行格式化。
【温馨提示】
这里的编号顺序也是从0开始。
- {0}表示要格式化的第1个变量,即"安迪"。
- {1}表示要格式化的第2个变量,即 "云南"。
- {2}表示要格式化的第3个变量,即 "复旦大学"。
【多次格式化同一个变量】
print(
"大家好,我叫{0},来自{1},我的同桌也来自{1},我们班有5个同学来自{1}!"
.format("安迪", "云南")
)
【终端输出】
大家好,我叫安迪,来自云南,我的同桌也来自云南,我们班有5个同学来自云南!
【代码解析】
上述代码格式化模板中我用了3个{1}
,即"云南"
我使用了3次。
只要内容相同,我们是可以多次使用的。
【格式化变量的顺序影响输出结果】
name = "安迪"
city = "云南"
school = "复旦大学"
print("大家好,我叫{0},来自{1},毕业于{2}!".format(school, name, city ))
【终端输出】
大家好,我叫复旦大学,来自安迪,毕业于云南!
【代码解析】
根据格式化变量(school, name, city )
的顺序:
{0}
要格式化的变量是school
,因此输出了我叫复旦大学
。
{1}
要格式化的变量是name
,因此输出了来自安迪
。
3.3 {}中有变量名
print(
"大家好,我叫{name},来自{city},毕业于{school}!"
.format(name = "安迪", school = "复旦大学", city = "云南")
)
【终端输出】
大家好,我叫安迪,来自云南,毕业于复旦大学!
【编写思路】
一.编写格式化模板。
- 我们要输出的内容是:
大家好,我叫安迪,来自云南,毕业于复旦大学!
- 把要格式化的内容用英文大括号加变量名
{变量名}
替换:
安迪
替换为{name}
。
云南
替换为{city}
。
复旦大学
替换为{school}
。
格式化模板为:"大家好,我叫{name},来自{city},毕业于{school}!"
二. 语法关键字。
- 输入一个英文小圆点
.
format
关键字
三. 要格式化的变量。
(name = "安迪", school = "复旦大学", city = "云南")
英文圆括号中写入已经赋值了的格式化变量。
【代码解析】
{name}
要替换的内容也可以直接用英文大括号加变量名表示。(name = "安迪", school = "复旦大学", city = "云南")
给要格式化的变量直接赋值。- 这种情况下不用考虑格式化变量的顺序。
- 程序会对照变量名进行格式化。
4.浮点数的格式化
【目标任务】
格式化输出3位数的小数。
【示例】
将3.1415926格式化后输出3.142。
【体验代码】
# :是固定语法
# .3 表示保留小数点后3位
# f 表示浮点数
print("{:.3f}".format(3.1415926))
【终端输出】
3.142
【编写思路】
- 输入英文冒号
:
。 - 输入一个英文小圆点
.
。
这里点表示告诉程序后面要采取的是精度操作,即保留小数点位数的操作。
- 输入一个整数,表示小数点保留的位数。
.1
表示保留1位小数。
.2
表示保留2位小数。
.3
表示保留3位小数。
f
表示数据类型为浮点数。- 再输入一个英文小圆点
.
。
这里.format是格式化语法固定搭配。
- 输入
format
关键字。 - 要格式的浮点数本身或浮点数变量名。
【:.1f
保留1位小数】
print("{:.1f}".format(3.1415926))
【终端输出】
3.1
【:.2f
保留2位小数】
print("{:.2f}".format(3.1415926))
【终端输出】
3.14
【:.4f
保留4位小数】
print("{:.4f}".format(3))
【终端输出】
3.0000
5..format
官方语法
【以下内容不需要掌握】
【官方语法参考】
{参数序号:格式控制标记}.format(*args,**kwargs)
- 参数序号是位置参数或关键字参数传递过来的参数变量。
- 英文冒号
:
是固定语法。 - 格式控制标记用来控制参数显示时的格式。这里有9个可选的标记。
有对齐方式:<
表示左对齐;>
表示右对齐;^
居中对齐;=
数字填充。
有精度:精度即用英文小圆点.
表示,后面紧跟一个整数。操作对象为小数表示小数保留的位数;操作对象为字符串表示截取字符的个数。
有输出类型:默认为s;s
表示字符;d
表示整数;f
表示浮点数。
还有6种这里不做介绍。
.format
是格式化语法。- *args表示位置参数。
- **kwargs表示关键字参数。
上面是str.format
格式化语法的官方介绍。
很多教材里也都是这么叙述的。
如果我像这样写,初学者很难看懂。
因此我用了大白话对官方描述进行了翻译。
初学者不用理解位置参数、关键字参数等含义,你把它理解成要格式化的对象即可。
其实,Python中很多函数都有很多个可选参数,例如print函数也有4个参数,我都没做详细介绍。
初学者不是研究者,我们先掌握基础语法和常用方法即可。
6. .format
格式化语法总结
{}
name = "安迪"
city = "云南"
school = "复旦大学"
print(
"大家好,我叫{},来自{},毕业于{}!"
.format( name, city, school)
)
【终端输出】
大家好,我叫安迪,来自云南,毕业于复旦大学!
{编号}
print(
"大家好,我叫{0},来自{1},毕业于{2}!"
.format("安迪", "云南","复旦大学")
)
【终端输出】
大家好,我叫安迪,来自云南,毕业于复旦大学!
{变量名}
print(
"大家好,我叫{name},来自{city},毕业于{school}!"
.format(name = "安迪", school = "复旦大学", city = "云南")
)
【终端输出】
大家好,我叫安迪,来自云南,毕业于复旦大学!
:.4f
保留4位小数
print("{:.4f}".format(3))
【终端输出】
3.0000
【备注】.format
格式化语法用例题理解更为直观。
.format
语法主要由3个部分组成:
- 格式化模板,即要输出的内容,需要格式化的地方用{}代替。
.format
,格式化语法。- 要格式化的变量。
7. 总结
51-1 .format字符串格式化总结1
8.课堂练习
- 用
.format
格式化语法输出:我是白敬亭,今年29岁。
【体验代码】
# 原样输出:我是白敬亭,今年29岁。
print('我是白敬亭,今年29岁。')
print('我是{},今年{}岁。'.format('白敬亭',29))
print('我是{name},今年{age}岁。'.format(name='白敬亭',age=29))
【终端输出】
我是白敬亭,今年29岁。
我是白敬亭,今年29岁。
我是白敬亭,今年29岁。
- 用
.format
格式化语法输出:今天是12月17日,油价8.5元每升。
【体验代码】
# 方法一
print('今天是{},油价{}元每升。'.format('12月17日',8.5))
# 方法二
print('今天是{data},油价{price}元每升。'.format(data='12月17日',price=8.5))
【终端输出】
今天是12月17日,油价8.5元每升。
今天是12月17日,油价8.5元每升。
-
函数
+关注
关注
3文章
4327浏览量
62564 -
代码
+关注
关注
30文章
4779浏览量
68514 -
编写
+关注
关注
0文章
29浏览量
8442
发布评论请先 登录
相关推荐
评论