0016 编程入门python之模块和进程

上节课作业

1.修改输入一个年月日日期,输出是星期几的程序,闰年判断做成函数,统计天数作成函数,星期计算做成函数

代码如下:



2.求图形面积函数增加平行四边形,梯形


做成模块

前面这个求各种图形面积的程序,如果后续陆续要增加更多的图形,则会导致这个程序越做越长,看起来很不方便

并且还有一个需求无法满足,假如有2个同学在做这个项目,一个人已经做好了3个图形的计算方法函数,另外一个人做好了2个图形的计算方法,怎样才能更方便的将2个人的代码整合到一起呢?假如有更多的人在做更多的图形,而且使用函数的也是其它的更多人,那么如何组织这些代码才能更有逻辑呢?

模块能够让你更有逻辑的组织你的python代码块。

简单的说,模块就是一个保存了python代码的文件。模块能够定义函数,类和变量。模块里也能包含可执行的代码。

将上面这个包含了5个图形计算面积函数的文件另存为area.py,然后只保留这5个函数,将其它代码删除:


在另一个文件里导入模块

使用import module1[,module2[,... moduleN] 来导入模块

例如刚才做好了area.py,要导入这个模块,则在代码前面使用import area 来完成

然后使用 area.triangle(base,high) 来访问模块里面的函数

具体代码如下:


还记得以前我们曾经导入过一个模块random吗

import random 引入一个模块random

random.randint(1,99) 生成一个1到99范围之内的随机整数

日期和时间模块

使用import time来导入日期和时间模块,来处理常见的转换日期格式问题

时间间隔是按照秒为单位的浮点小数

每个时间戳是从1970年1月1日0点0分0秒经过了多长时间来表示

比如要表示一个当前时间的时间戳,可以在python里面运行如下代码:


这个时间是用于电脑存储和计算的,但是对于人类来说并不友好,所以,一般会通过函数将这个时间戳转换为人类熟悉的格式

运行如下代码进行体验:


这里是用time.localtime()函数来获得当前的本地时间戳,然后用strftime函数将时间戳转换为显示格式

其中的%Y表示用4位数的年,%m表示月份01-12,%d表示月内的一天0-31,%H表示24小时数0-23,%M表示分钟数00-59,%S表示秒00-59

还有很多其它格式参数,具体内容大家可以自行去网上搜索。

time模块还有很多函数,常用的有time.sleep(seconds),表示暂停程序几秒钟,在python里面输入time.sleep(5)体验一下暂停5秒钟的感觉

time其它时间函数,请大家自行去网上搜索后在python里面进行体验。

进程的概念

计算机系统会启动很多程序,但这些程序不一定在当前界面能看到,比如启动一个python程序,假设这个程序一直在运行不退出,然后我们并没有停留在终端界面,就不一定会看到这个程序在运行,我们把这可以称之为进程。

在树莓派系统里面,可以在LX终端程序里面用sudo ps aux命令来查看所有的当前正在运行的进程:


注意其中PID这一列就是进程ID

如果要搜索包含指定名字的进程,则可以使用sudo ps aux|grep 名字

例如,要搜索有几个包含python的进程,使用sudo ps aux|grep python


如果只看到最后一行 包含了 grep 这一行,表示是搜索程序本身,表示当前进程里面没有包含python的进程

然后我们再打开另外一个LX终端,在里面运行python,进入python环境


然后回到刚才的上面这个LX终端,再次运行sudo ps aux|grep python


会发现搜索结果里面多了一个PID等于1913的进程,运行的是python程序。

如何杀死不用的进程

在某些情况下,进程一直在运行,可能是进入了死循环,这时候,常规办法可能无法删除掉这个进程,可以用下面的办法强制杀掉进程

使用sudo kill -9 PID 这个命令

例如,上面的python进程PID为1913,就运行sudo kill -9 1913杀掉python进程,然后再次查看进程,发现没了该进程:


此时,再切换到另外一个LX终端窗口,发现python程序被杀死强制被退出了:


今天的课程,主要讲的就是如何定义模块,如何使用模块,以及如果碰到死循环程序如何查询杀掉进程。

课后作业

1.写一个死循环程序,循环内部每次sleep 3秒,运行该程序,然后强制退出程序,杀死该进程

2.网上寻找datetime函数包的用法,用2行代码重写输入年月日输出星期几(中文)

往期教程

因为教程是系列教程,前后关联性非常强,请大家按照微信公众号【零基础学编程】的历史消息发布时间先后次序进行阅读。

QQ群简介

欢迎大家加入QQ群 603559164 零基础学编程,交流学习,共同进步。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,107评论 25 709
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,774评论 6 427
  • 前言 Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打...
    依依玖玥阅读 8,977评论 6 37
  • 文/Bruce.Liu1 1.Python前世今生 1.1.Python历史 Python的创始人: Guido ...
    BruceLiu1阅读 14,211评论 3 119
  • 我的兴趣爱好说来广泛,其实长期以来坚持的也就音乐和篮球两样。从小就看着CBA长大,算算肯定不止十年,十五年估计也有...
    路过TIYO阅读 2,622评论 1 0

友情链接更多精彩内容