美文网首页小白学python
Python基础 | 函数

Python基础 | 函数

作者: Demafic | 来源:发表于2019-05-25 07:57 被阅读0次

函数的作用

写代码忌讳的是重复,当有重复的代码块出现时,可以使用函数对代码块进行封装,使得重复部分只用一个函数就能实现,比如我们要计算cc

3!*4!*5!

ok,一般我们可以写成:

a = 3
b = 4
c = 5
r = 1
for i in range(1,a+1):
    r *= i

p = 1
for i in range(1,b+1):
    p *= i
    
q = 1
for i in range(1,c+1):
    q *= i
print(r*p*q)

对,三个一样的阶乘计算代码,相当麻烦,所以我们只需将重复的代码封装到一个函数即可。

def factorial(num):
    r = 1
    for i in range(1,num+1):
        r *= i
    return r

那么3,4,5的阶乘的乘积:

factorial(3)*factorial(4)*factorial(5)

是不是相当简单。

定义函数

这里我们将阶乘的代码块定义为factorial,括号内是我们需要传入的参数,return是将结果输出。函数的命名规则与变量的命名规则相同。

函数参数

当然,这里我们将参数定义为一个需要传入的变量,我们也可以直接将参数固定:

def parameter(a=3,b=4):
    print(a+b)
parameter()
parameter(4)
parameter(4,8)

结果是7,8,12.

当没有参数传入时,使用的是默认参数。

参数的设置还有一个更'懒'的方法。

直接定义为*args

这表示传入的参数是可变参数,可以是0个也可以是多个。

当然,如果这种方式被滥用的话,还是蛮恶心的。

变量作用域

def foo():
    b = 'hello,world'
    def bar():
        global a
        print(a)
        a = 300
        print(a)
        print(b)
    bar()
    
if __name__=='__main__':
    a =100
    print('a:',a)
    foo()

结果是

a: 100
100
300
hello,world

global被删掉时,就会报错UnboundLocalError: local variable 'a' referenced before assignment

因为原来a就是全局变量,如果你修改,就会变成局部变量,所以可以先声明一下a的作用域。

相关文章

  • python基础笔记

    Python基础 函数:

  • Python入门

    Python3教程 安装Python 第一个Python程序 Python基础 函数 高级特性 函数式编程 模块 ...

  • python入门套路

    Python基础 基础数据类型 bool string list tuple dictionary 基础函数 he...

  • python基础-07-函数

    python基础-函数 1.函数的定义 例子: 2.python中函数的参数详解 必备参数demo: 默认参数de...

  • Python基础-函数

    Python基础-函数 1.函数定义 2.参数传值 3.内置函数

  • 理解Python中的闭包

    Python基础 在Python中,函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。...

  • Python基础 - 函数基础

    知识回顾 列表,字典,元组,集合 列表(list):[];可变,有序;元素是任何类型的数据增:append,ins...

  • Python从入门到精通

    Python语法的三个阶段 Python基础语法函数是编程 Python进阶语法面向对象编程 Python高级语法...

  • #python基础入门#目录

    python基础入门_01 保留字常用函数turtle库基本数据类型time库 python基础入门_02 程序的...

  • 2018-07-25Python(7)

    python基础语法(7) 函数下 lambda函数lambda函数有自己的作用域。代码示例:def makeAc...

网友评论

    本文标题:Python基础 | 函数

    本文链接:https://www.haomeiwen.com/subject/xbtazqtx.html