吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1831|回复: 6
收起左侧

[Python 转载] [笔记]第四天Python-100-Days-master跟我一起学(06.函数和模块的使用)

  [复制链接]
wuyangteam 发表于 2020-8-23 20:58
本帖最后由 wuyangteam 于 2020-8-23 22:10 编辑

写在前面的话

今天我们进入第四天的学习,本节内容为函数与模块。今天的知识,是要小伙伴们融会贯通的,请与前面的第三天内容,分支与循环一起做练习。

06.函数与模块

一.函数

1. 基础

假如:我们想要打印如下图案

*
**
***
****
*****
*
**
***
****
*****
******
*******
********

甚至行数更多,怎么办呢,我们不可能每个地方都来一下这几句代码,太浪费精力了,重复造轮子。因此我们会将它抽象,构建一个函数,或者后面的类,模块。
其实宗旨就只有一个,包装,封装,以便代码重用。

def func(row=5):
    for i in range(1, row + 1):
        print('*'*i)

这个代码,我们已经很熟悉了,只不过我们将它包在了一个函数里,函数就是为了实现某些功能,利于代码的重用。  


注意事项:

  1. def func(row=5):row被成为参数,row本身是变量,其值是可以被调用者的变量值替代的。而row = 5是默认参数值,如果调用者不传参数,则该值就为5,你可以这样使用:
def func(row=5): 
    for i in range(1, row + 1):
        print('*'*i)
func() #不带参数,因为幽默认值
func(6) #带参数
func(row = 7) #指定参数名称
a = 10
func(a) #指定参数名称

2. 参数

考虑最简单的求三个数的和函数

def add(a, b=0, c=0): #未设默认值的参数,应放到有默认参数值的前面,例如:add(a=0,b,c)这个是错误的。
    """三个数相加"""
    return a + b + c
print(add(3)) #a=3, b=0, c=0
print(add(3, c=4)) #a=3, b=0, c=4

可变参数

# 在参数名前面的*表示args是一个可变参数
def add(*args):
    total = 0
    for val in args:
        total += val
    return total

# 在调用add函数时可以传入0个或多个参数
print(add())
print(add(1))
print(add(1, 2))
print(add(1, 2, 3))
print(add(1, 3, 5, 7, 9))

二.模块

考虑我这里有个python文件,test.py,内容如下:

def add(a, b=0, c=0): #未设默认值的参数,应放到有默认参数值的前面,例如:add(a=0,b,c)这个是错误的。
    """三个数相加"""
    return a + b + c
print(add(3)) #a=3, b=0, c=0
print(add(3, c=4)) #a=3, b=0, c=4

现在,项目组里张三想用我的模块test.py,那么张三只需要import test,例如:

import test
print(test.add(1)) #a=3, b=0, c=0

输出结果:

3
7
1

但该输出结果并不是我们需要的,Python解释器在导入这个模块时就会执行这些代码,因此如果我们在模块中编写了执行代码,最好是将这些执行代码放入如下所示的条件中,这样的话除非直接运行该模块,if条件下的这些代码是不会执行的,因为只有直接执行的模块的名字才是"__main__"。

修改test.py如下:


[i]def add([i]a, [i]b=0, [i]c=0): #未设默认值的参数,应放到有默认参数值的前面,例如:add(a=0,b,c)这个是错误的。
    """三个数相加"""
    return a + b + c
if __name__ == "__main__":
    print(add(3)) #a=3,b=0,c=0
    print(add(3, [i]c=4)) #a=3,b=0,c=4

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
七色九天 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
13350485476 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

nulla2011 发表于 2020-8-23 21:24
学习了。
大兵马元帅 发表于 2020-8-23 21:26
最后一段代码和上面一样了,看不出来哪里改了,谢谢
w547890 发表于 2020-8-23 21:28
2513002960 发表于 2020-8-23 21:28
还是系统的学习好,继续学习!
 楼主| wuyangteam 发表于 2020-8-23 22:11
大兵马元帅 发表于 2020-8-23 21:26
最后一段代码和上面一样了,看不出来哪里改了,谢谢

已改正,谢谢提醒
清风徐来L 发表于 2020-8-23 22:11
感谢,我已经学到第8天了哈哈哈,一起加油
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表