1.前言
今天是一年一度的五一国际劳动节,还记得放七天假的时候吗?醒醒吧老哥,不存在的。不过还是首先祝大家五一劳动节快乐,今天嘞,可以犒劳一下自己,休息休息,出去逛逛啊,都是可以的。
不过身为祖国花朵的我还是要继续工作,幸福是奋斗出来的!
这次主要给大家介绍的是Python学习中遇到的重要的概念之一--模块,这是干什么的?有什么用?为什么给它起这样一个名字?相信大家也应该开发过硬件,我比较熟悉的硬件是单片机和Arduino,在利用这个两个硬件系统做比赛时候会遇到一些问题:哎,这个板子怎么功能好单一嗷、我想用它来采集语音、采集温湿度、采集粉尘浓度,该怎么办?
在Arduino里面,我们将不同的传感器统称为模块,常见的有蜂鸣器模块、红外模块、加速度测试模块、温湿度传感器模块,加上这些后我们搭建硬件电路同时在软件编程中将模块加入到程序中就可以实现我们相应的功能,功能变强大了,也就是离拿奖又进了一步!
从而我们可以自然而然的想到模块是导入到Python里面以增强其功能的扩展,需要使用特殊的命令import来导入模块!
注意:在HTML/XML编辑器里面生成的python代码会有类似<span style="color:#333333;">的标签语言,这部分不在代码里面,请自动忽略。
2.模块的使用
>>>import math #导入math模块
>>>math.floor(32.9)#调用math模块里面的floor方法
32.0
注意看它是怎样发挥魔法作用的,利用import导入了模块,然后按照“模块.函数”的格式使用这个模块的函数,是不是很简单 !的确是这样的,需要你做的只需要记住模块的名字届模块里面函数的名字和用法,到时候想调用的时候就很方便啦。除了上面这种调用方法以外,下面这两种调用方法也是值得我们注意的,自己体会体会。
>>> from math import sqrt
>>> sqrt(9)
3.0
>>>import math
>>> foo=math.sqrt
>>> foo(9)
3.0
>>>import sys #获取指定模块搜索路径的字符串集合
>>>sys.path['/Users/yangjiayuan/PycharmProjects/day/day02', '/Users/yangjiayuan/PycharmProjects/day', '/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/Users/yangjiayuan/Library/Python/2.7/lib/python/site-packages', '/usr/local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/site-packages/robot-20071211-py2.7.egg', '/usr/local/lib/python2.7/site-packages/framework-0.1.0-py2.7.egg', '/usr/local/lib/python2.7/site-packages/robotframework_ride-2.0a1-py2.7.egg', '/usr/local/lib/python2.7/site-packages/wx-3.0-osx_cocoa', '/Applications/PyCharm.app/Contents/helpers/pycharm_matplotlib_backend']
import os
print os.getcwd() #获取当前路径
print os.listdir('/mnt') #列出/mnt下面的所有目录和文件
print os.mkdir('wuyijie') #创建目录wuyijie
print os.mkdir('people') #创建目录people
print os.rmdir('people') #删除people
两个常用的sys和os模块的简单使用:(注意下面代码一个是在shell里面执行,一个是在pycharm里面执行)
3.使用自己编写的模块
其中login.py为我自己编写的一个简单登录程序,只要输入正确的用户名和密码就可以看到登录成功欢迎提示,自己也可以修改名字和密码,程序很简单,大家一看就懂。
import getpass
_username='alex'
_password='123'
user=raw_input("Please input username:") #raw_input为用户输入
pwd= raw_input("Please input password:")
if user==_username and pwd==_password:
print("Welcome user %s login"%user)
else:
print("Wrong username or password")
再一个就是sys.py里面的内容,在这里面我将前面的部分注释掉了,只留下最后的import login,这相当于是在一个新的位置调用自己编写的login模块,不过一定得记得将自己的login模块保存下来,保存在同一个工程文件中。
'''
import sys
print sys.path
print sys.argv[0]
print sys.argv[1]
import os
os_res=os.system("ls -l")
os.mkdir("new_dir")
os_res=os.popen("ls -l").read()
print os_res'''
import login
同时记得去sys.py里面去执行,输入不同的用户名和密码你会的得到和下面类似的运行结果。
4.Attention
- 上述代码的运行有的是在Python shell里面执行的,有的是在pycharm里面执行的,不要胡乱粘贴执行,自己动手丰衣足食。
- 关于模块的内容更多可以参考:廖雪峰的官方网站,多学一点咯。
- 我的程序全是在Python2.7的环境下跑出来的结果,包括pycharm里面的解释器也是Python2.7的,如果你安装了更高版本的Python,需要注意一些语法的使用。
- 下一章节预告:字符串