python(8)入门笔记

一 . 函数

       在编写代码的过程中,需要经常调用相同或者类似的操作,而这些是由同一段代码完成的,而函数的出现,可以帮助我们避免重复编写这些代码。函数的作用就是把相对独立的某个功能出来,使之成为一个独立的个体。

1.1 函数的定义

定义一个函数只要以 “def”开头即可。

def function_name(arg1,arg2):

    function body

    return value

 ◇ 函数名(functiom_name):和python中其他的标识符命名规则相同,有效的函数名以字母或下划线开头,后面可以跟字母、数字或下划线,函数名应该能够反映函数所执行的任务。python中的函数名是区分大小写的,相同的字母,不同的大小写视为两个不同的函数。

◇函数参数(arg1,arg2):调用一个函数时可以传递的参数。参数可以有一个或者多个,也可以没有参数。

◇函数内容(function body):任何有效的代码都可以出现在函数内部。注意函数内容相对于定义函数的“def”行需要缩进四个空行。

◇函数返回值(return value):函数执行完成后返回的值。也可以不返回任何内容,不返回内容可视为返回“None”。

#!/usr/bin/env python3
 # -*- coding: GBK -*- 
def introduce(name):
    print("hello",name)
introduce("world")
introduce("蓝山")

运行结果:

hello world

hello 蓝山

1.2 函数参数 

1.2.1 必须参数

       顾名思义就是函数定义的参数调用时必须传人,并且在调用的时候数量和顺序必须和定义函数时的参数保持一致。

#!/usr/bin/env python3
# -*- coding: GBK -*- 
def add(a,b):
    print("a + b =",a+b)
add(1,4)

运行结果:a + b = 5

如果少传入一个参数或者多传入一个参数都会引起报错。

 1.2.2 关键字参数

        关键字参数可以不按函数定义时的参数的顺序来调用函数,python解释器定义时的参数名来匹配参数。

#!/usr/bin/env python3
# -*- coding: GBK -*- 
def hello(name,age):
    print("姓名",name)
    print("年龄",age)
hello(name="零一",age=18)
hello(age=2,name="蓝山")

运行结果:

姓名 零一

年龄 18

姓名 蓝山

年龄 2

1.2.3 默认参数 

       在定义函数时我们可以给参数添加默认值,如果调用函数没有传入参数,函数就会使用默认值,并且不会像必须参数那样报错。默认参数必须定义在最后,而且在默认参数之后定义必须参数会报错。

#!/usr/bin/env python3
# -*- coding: GBK -*- 
def pname(name,age=18):
    print("姓名",name)
    print("年龄",age)
pname("蓝山")

运行结果:

姓名 蓝山

年龄 18

 1.2.4 可变参数

       在某些情况下我们不能在定义函数的时候就确定参数的数量和内容,这时候就可以用使用可变参数。

#!/usr/bin/env python3
# -*- coding: GBK -*- 
def foo(*args):
    print(args)
foo()
foo(1,2)
foo("蓝山",10,"lanshan")

运行结果:

()

(1, 2)

('蓝山', 10, 'lanshan')

#!/usr/bin/env python3
# -*- coding: GBK -*- 
def foo(**kwargs):
    print(kwargs)
foo()
foo(name="蓝山")

运行结果:

{}

{'name': '蓝山'}

“*args”参数获取到的是一个元组,这也是它能作为可变参数的原因。

“**kwarg” 参数获取到的是一个字典,所以我们在调用函数时必须要用关键字参数方式传参。

1.3 变量作用域 

变量的作用域就相当于变量的命名空间,赋值过的变量并不是在哪里都可以使用的。

python有两种最基本的变量作用域:局部变量和全局变量。

1.3.1 局部变量

        一般情况下,在函数内赋值的变量,不做特殊声明的都是局部变量。顾名思义,局部变量的作用域是局部的,在当前函数赋值则只能在当前函数使用。

#!/usr/bin/env python3
# -*- coding: GBK -*- 
def foo():
    x = "hello"
    print(x)
foo()
print(x)

运行结果:

hello

Traceback (most recent call last):

  File "C:\Users\14978\AppData\Local\Temp\tempCodeRunnerFile.python", line 7, in <module>

NameError: name 'x' is not defined

 在函数体内部的执行成功了,在函数体外部的执行失败,并且接收到返回信息:“x”没有定义。

1.3.2 全局变量 

在函数外赋值的变量就是全局变量,全局变量可以在整个程序范围内被访问到。

#!/usr/bin/env python3
# -*- coding: GBK -*- 
x = "蓝山"
def foo():
    x = "hello"
    print(x)
foo()
print(x)

运行结果:

hello

蓝山

1.4 函数返回值 

如果想要获取函数中的局部变量,可以使用“return”关键字返回。

#!/usr/bin/python
#coding: utf-8
def a():
    print("没有return")

def b():
    print("有return没有返回值")
    return
def c():
    x = "lanshan"
    print("有return有返回值")
    return x

result1 = a()
print(result1)

result2 = b()
print(result2)

result3 = c()
print(result3)

 运行结果:

没有return

None

有return没有返回值

None

有return有返回值

lanshan

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值