投稿  收藏 
用指数形式输出一个实数

【问题描述】

输入两个实数,用指数形式(即科学记数法)输出它们的乘积。

用指数形式输出一个实数输入数据:

请输入实数a的值:314.15926

请输入实数b的值:29.3892

用指数形式输出一个实数输出结果:

314.159260*29.389200=9.23e+03

【题前思考】

根据问题描述,填写表2-2-7。

表2-2-7 问题分析

用指数形式输出一个实数

【解题思路】

将实型数据转化为指数形式,调用字符串的format( )方法将实数转换为指数形式,指数形式格式化的转换码是e。

【程序代码】

用指数形式输出一个实数

【代码分析】

①:为了便于查看,将等号后的内容写为□□9.23e+03,这里的方格子□表示空格,小数点占一个字符位置,总宽度为10,四舍五入保留两位小数。在左侧填充两个空格的原因是数据实际宽度为8。具体格式如图2-2-5所示。{}称为占位符,占位符中的内容被冒号分成两个部分,冒号前的数是被格式数据在format( )方法参数中的序号(也可以是在调用format( )方法时指定的参数名称,还可以缺省),冒号后是格式说明符,被格式数据将被格式说明符按其指定格式转换为字符串。程序中格式化的语句还可以写为以下两种形式。

形式1:

#:前缺省时各占位符依次从format( )方法的参数中取数据作为被格式数据

"{:f}*{:f}={:10.2e}".format(a,b,a*b)

形式2:

#format( )方法中参数名可以自行命名,此处命名为x,y,z

"{x:f}*{y:f}={z:10.2e}".format(x=a,y=b,z=a*b)

用指数形式输出一个实数

图2-2-5 数据格式说明

【优化提升】

将实数用指数形式格式化,除了可以用str.format( )方法外,还可以用格式字符串字面量表示为f"{a:f}*{b:f}={a*b:10.2e}"。以f开头的字符串就表示格式字符串,{a*b:10.2e}是占位符,表示用10.2e的格式输出a*b的值,占位符以外的其他字符原样输出。

【技术全貌】

Python的数据格式化主要有%格式符、format( )函数、str.format( )方法和格式字符串字面量4种方式,常用的输出格式转换码见表2-2-8。

表2-2-8 常用的格式转换码

用指数形式输出一个实数

format( )函数、str.format( )方法和格式字符串字面量的占位符结构如下所示:

用指数形式输出一个实数

用指数形式输出一个实数表达式可以是任意合法的Python表达式。

用指数形式输出一个实数填充字符可以是任意字符。当实际宽度小于指定宽度时,将会用填充字符填充字符串,直到宽度达到指定宽度。

用指数形式输出一个实数对齐方式包括左对齐、居中对齐和右对齐,分别用符号<,^,>表示。

用指数形式输出一个实数+表示任何情况下都有正负号;-表示只在负数的情况下加负号,正数没有符号。

用指数形式输出一个实数#表示自动添加各进位制的前缀。如果用二进制输出会加前缀0b,八进制数加前缀0o,十六进制数加前缀0x。

用指数形式输出一个实数0表示用0来填充符号至第一位整数间的位置。

用指数形式输出一个实数最小宽度表示整个占位符要占用的宽度,如果实际宽度小于这个宽度,使用填充符填充,反之原样输出。

用指数形式输出一个实数,表示对整数部分使用逗号作为千位分隔符。

用指数形式输出一个实数.精度表示小数位数,要四舍五入。

用指数形式输出一个实数类型使用表2-2-8中的格式转换码。

str.format( )方法格式字符串的使用方法与格式字符串字面量的结构类似,不同点在于str.format( )方法将冒号(:)前的内容放到了参数中,比如以下各print( )函数会输出相同的内容:3.26+7.85=11.10。

a=3.256 b=7.848

print(f"{a:<10.2f}+{b:<10.2f}={a+b:<10.2f}")

print("{0:<10.2f}+{1:<10.2f}={2:<10.2f}".format(a,b,a+b))

print("{:<10.2f}+{:<10.2f}={:<10.2f}".format(a,b,a+b))

print("{a:<10.2f}+{b:<10.2f}={c:<10.2f}".format(a=a,b=b,c=a+b))

关 键 词

实数

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢