Python笔记之函数和包

辛苦堆砌,转载请注明出处,谢谢!

Python前面的文章基本把数据类型方面的内容介绍完了,这次来看看包和函数。换其他语言,函数和包的部分可能会占到很大的篇幅,但是Python就很简单了。我们先来看看Python的文件。


Python的文件扩展名为.py,.py文件中可以放置任何Python的语句,如果安装Python时候勾选了将Python加入环境路径,我们就可以在任何地方双击.py文件运行,或者在命令行运行。例如,我们创建一个文件hello_world.py,内容如下:

print('Hello World')

input()


就是一句打印Hello World的语句,只不过我们放在了文件中,input()方法将导致程序等待用户输入,这样我们的中断不会很快关闭,以方便我们看到输出的Hello World,保存好,双击.py文件试试看!另外,我们也可以IDLE的file->open打开文件,然后Run->Run Module或F5来运行,这样运行的好处是我们可以进行调试。下面的例子都是使用这种方法运行的。


以上就是Python文件的说明,是不是很简单?说白了,所有Python终端可以运行的东西,我们都可以放在文件里面,我们可以将一个个工具程序分别放在不同的py文件中,这样方便我们使用,也方便代码的复用。


那么,什么是Python的包呢?说白了,Python的包就是一个目录。你没有看错,一个Python包就是一个目录,但是这个目录有一个特殊之处,这个目录中有一个__init__.py文件。也就是说,有__init__.py文件的目录就是Python的包,包名就是这个目录的名字。默认__init__.py文件什么都不写就可以了,只要有一个空文件就够了,当然你可以写入一些信息,可以从网上找一些资料了解一下。子包就是在包目录下再创建一个目录,然后创建一个__init__.py文件即可。


我们假设有一个example目录,其中有一个__init__.py文件,则我们有一个example包,然后example目录再创建一个HelloWorld的目录,其内再创建一个__init__.py文件,将我们上面的hello_world.py文件放在HelloWorld目录中,则我们的hello_world.py就是属于example.HelloWorld包,包中有一个模块是hello_world。我们在example目录创建一个example.py文件,稍后我们将在其中添加代码。我们的目录结构如下所示

example/
├── example.py
├── HelloWorld
│   ├── hello_world.py
│   ├── __init__.py
└── __init__.py



接下来我们就可以介绍函数了,Python的函数很简单,我们将上面打印Hello World的内容封装为函数

def printHelloWorld():
    print('Hello World')


def是定义函数的关键字,后面是函数名加一个括号和一个冒号,之后是函数的缩进代码块。这个函数没有返回值,没有参数。


那么如何调用函数呢,我们打开example.py文件,输入以下内容

from HelloWorld.hello_world import printHelloWorld

printHelloWorld()


from 模块名 import 引用项 用来从某个模块引入某个项。我们上面就从HelloWorld.hello_world模块引入了printHelloWorld函数。hello_world模块的全限定名称就是我们hello_world.py文件的包名.文件名称。之后我们调用了printhelloWorld方法。运行example.py文件,可以看到和之前单独运行hello_world.py的效果一样。


看过了最简单的函数,我们看一下有返回值的函数,我们在hello_world.py中添加一个新函数

def returnHelloWorld():
    return "Hello World"


这个函数通过return返回一个字符串,但是和其他语言不同的是,我们不必声明返回值类型。example添加代码

from HelloWorld.hello_world import returnHelloWorld

print(returnHelloWorld())


运行程序,这次打印了两个Hello World,只不过一个是printHelloWorld函数内部打印的,一个是我们调用returnHelloWorld之后,将其返回值进行了打印。


再来看一个例子,这个例子有一个参数,我们可以传递要打印的Hello X中的X,在hello_world.py添加函数

def printHello(word):
    print("Hello " + word)


使用了字符串拼接,word是我们传入函数的参数,然后向example.py添加

from HelloWorld.hello_world import printHello

printHello('Cool Boy')


再次运行程序,会多打印一句Hello Cool Boy


函数的参数个数可以任意多,我们修改printHello函数,这个函数可以决定我们Hello X语句后的标点符号。

def printHello(word, endWith='.'):
    print("Hello " + word + endWith)


这次有点东西需要说明一下,endWith是第二个参数,不过这个参数有一个默认值,为英文句点。也就是说,如果我们调用printHello函数,但是没有赋值endWith,这样也是可以的

printHello('Cool Boy')

打印结果是Hello Cool Boy.


如果赋值了第二个参数,例如

printHello('Cool Boy', '!')

打印结果为Hello Cool Boy!


另外,我们还可以使用显式方式赋值,这样,我们就没有必要按照顺序给参数赋值了

printHello(endWith="!", word="Cool Boy")

打印同样为Hello Cool Boy!


以上的函数内容足够各位小伙伴做一些开发了,还有可变参数的一些内容,感兴趣的大家可以再去进一步了解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值