Python3.8场景式编程学习与训练- 第1章 入门基础 综合编程-闪电雷声和距离

在这里插入图片描述

本教程中综合编程示例以及编程练习题的视频讲解,均在 学Python网站: www.xpython.com.cn 上发布,可以访问该网站观看视频讲解。

1.10 综合编程-闪电雷声和距离

1.10.1 应用场景

大自然中的闪电、雷声对大家来说是耳熟能详的现象,你是否思考过闪电雷声与雷击距离的关系?我想很少有人认真考虑过,下面我们就用python来解答这个疑问。
根据闪电和雷声之间的时间差来确定雷击的距离是多少公里?

1.10.2 解决思路

要解决这个问题,我们需要知道声音的传播速度,时间乘以速度就是距离。我们可以通过搜索引擎的互联网上进行查询得知:声音在空气中的传播速度是:空气(15℃)340m/s ,空气(25℃)346m/s 。我们可以取每秒340米。

1.10.3 应用编程

我们启动IDLE开发环境,在IDLE的“编辑窗口”中,输入以下Python源代码,取名为:distance.py。需要说明的是,在下面的程序代码中,每一行前面的数字为行号,不是源代码程序的一部分。仅在程序讲解时使用。因此,在IDLE编辑窗口中输入程序代码时,不可输入行号。

 # distance.py : 计算雷击的距离
   
 # 通过键盘输入时间
 time = input('闪电和雷声之间的时间差(秒): ')
   
 # 将字符串转换整数
 time = int(time)
   
 # 计算雷击的距离
 distance = 340 * time
  
 # 打印计算结果
 print('雷击的距离: ', distance / 1000, '公里!')
 

10.1.4 程序解析

第1行,由符号#打头,表明这是一条“注释语句”。用以简要说明程序功能,以及重要代码片段说明,Python解释器将忽略或者跳过注释行语句,不作任何处理第3、6、9、12行代码与第一行代码作用相同,由于注解语句的作用。

第4行,time = input('闪电和雷声之间的时间差(秒): '),Python解释器在执行这条语句时,首先是在屏幕上显示信息: 闪电和雷声之间的时间差(秒):, 然后是等待用户键盘输入,按Enter提交输入内容,Python将获取键盘输入内容并赋值给变量time。由于time是第一次在程序中出现,则这条语句还有一个作用,就是定义了一个新变量,名字叫做 time。
事实上,变量是程序语言中非常重要概念。变量是一个指向计算机内存的地址,在这个地址的内存中,可以存放各种数据值,例如整数、浮点数、字符串等,我们可以在程序中使用变量名来引用这些数据值。变量的主要用途是临时存储数据,程序一旦执行完成,Python将清除这些变量值,回收内存空间。
input( )是一个Python的标准函数,你可以在程序中直接使用,要注意的是input( )函数的返回值是一个字符串。
此语句中的符号‘=’,代表赋值,此语句为赋值语句。它与数学中的等号含义完全不同。例如:
x = x + 1
这是一个正确而常见的Python语句,其含义是将变量x 的值加上1,再次赋值给变量x。如果在语句执行前x的值是5,那么语句执行后,x的值是6。
但是,x = x + 1在数学中是不正确的。

第7行,首先将字符串变量time转换成一个整数,再赋值给time,以便进行其后的算术运算。
int( )也是Python的标准函数,可以拿来就用,它的功能是将一个字符串转换为一个整数。在编程中,数据转换是一项高频的任务,需要经常使用。

第10行,计算雷击的距离。在Python语言中,符号: * 与 / 分别代表乘法和除法运算符。

第13行,print('雷击的距离: ', distance / 1000, ‘公里!’)是打印输出结果。
在这里使用了Python的标准函数print( ),作用是在屏幕上输出信息。print( )可以接受多个参数,他们用逗号分隔,输出内容是由每一个参数后面加上一个空格拼接而成。
凡是用引号括起来的内容原样打印,如:'雷击的距离: '和 '公里!'部分;而distance/1000是一个表达式,完成将距离的单位由米转换为公里。

第2,5,8,11,14行是空行,这是我在编程是刻意留下的。因为在程序代码中适当地增加空行,同样可以增强程序的可读性,这是一种良好的编程风格,应当学习和模仿。当然,如果你执意要删除这些空行,它完全不影响程序的功能。

10.1.5 IPO结构

经典程序结构通常包括:输入(Input),处理(Process)和输出(Output)三部分。distance.py程序就是IPO结构,它们分别是:
I:第4行;
P:第7、10行;
O:第13行。
初学者应该熟悉和掌握程序IPO结构,将有助于提高分析、理解和阅读程序代码的综合能力。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值