在上一节 数学运算 中,我们学会了在 Python 终端计算圆的面积,如下:
|
|
但是,这样的方式多用于临时计算,不够灵活。 那么,我们能否编写一个完整的程序,根据用户输入的圆半径,计算圆面积并输出到屏幕呢?
首先,我们来对程序进行分解:
- 获取用户输入内容,即圆的半径;
- 根据输入内容,计算圆的面积;
- 输出相应的计算结果;
现在,让我们逐一破解,完成这个程序。
输入
Python 提供了 input 函数,用于获取用户输入的内容,以输入圆半径为例:
|
|
注意到,提示语 请输入圆的半径:
作为参数传给了 input 函数。 用户输入后,input 函数返回输入内容,被我们保存到变量 radius 。
这个语句执行后,Python 先输出提示语,并等待用户输入:
|
|
假设圆半径为 2,我们输入 2,并按回车:
|
|
按下回车后,我们输入的内容便保存在变量 radius 了:
|
|
我们再接再厉,用 radius 变量计算圆的面积:
|
|
咦,居然报错了?原来,input 函数返回的数据是 字符串类型 ,不能参与数学运算。
数据类型
在 Python 中,以单引号 '
或双引号 "
括起来的数据属于字符串类型:
|
|
字符串类型一般用来保存文本,不能直接参与数学运算。 如果要参与数学运算,需要将字符串类型转换成 数值类型 。 Python 中的数值类型分为以下几种:
- 整数 ( int )
- 浮点数 ( float )
- 布尔值 ( bool )
- 复数 ( complex )
不同的数据类型,底层存储结构也不尽相同。 至于选哪种类型,得视具体场景而定。 如果圆半径只有整数,选用 int 即可; 如果圆半径需要支持小数,那就必须选择 float 。
我们选择浮点类型,以支持小数运算。 调用 float 函数将 raius 变量转换成浮点数:
|
|
将 radius 变量作为参数传给 float 函数,完成类型转换,并返回一个浮点数,重新赋值给 radius 变量。 现在,radius 变量已经变成一个浮点数了:
|
|
如果你不确定变量类型,可调用 type 函数进行检查:
|
|
接下来,再计算圆的面积,看结果如何:
|
|
计算正确!
除了字符串和数值类型,Python 还内置了许多其他数据类型,例如:
- 列表 ( list )
- 元组 ( tuple )
- 集合 ( set )
- 字典 ( dict )
- etc
现在先别急,在以后的教程中,我们会逐一接触并掌握它们。
我们趁热打铁,将上述代码整理成一个完整的程序,并保存到文件 circle-area.py :
|
|
现在打开命令行,执行程序:
|
|
如我们所料,屏幕上输出了计算结果。
输出
我们使用 print 函数,将计算结果输出到屏幕。 但是只输出一个数字,未免显得太单调。 有什么办法可以使输出内容更丰富吗? 例如,输出 半径为1.5的圆面积是:7.0685775
?
借助字符串格式化,我们可以将变量以指定格式插入到字符串中。例子如下:
|
|
'圆周率是:{}'
是待格式化字符串,其中 {}
是 占位符 ,代表变量插入位置。 format 是字符串格式化方法,为字符串占位符指定替换值。 例子中,我们用变量 pi 的值替换原字符串中的占位符,因此最终的返回结果是 '圆周率是:3.14159'
。
如果圆周率只需保留小数点后两位,还可以在占位符上下功夫:
|
|
占位符 {:.2f}
冒号后是格式描述 .2f
, f
代表 定点表示法 ,.2
代表小数点后两位。 当然了,待格式化字符串可以包含多个占位符,用多个值进行替换:
|
|
这样一来,我们可以将 circle-area.py 进一步修改成这样:
|
|
注意到,圆面积输出只保留小数点后两位。 再次运行程序,结果输出已经像模像样了:
|
|
【小菜学Python】系列文章首发于公众号【小菜学编程】,敬请关注: