重温python基础3:函数

一、Python 提供了这样一些内建函数,像 print()、input()和 len() 函数,但也可以编写自己的函数。“函数”就像一个程序内的小程序。 格式一般如下:

有返回值:

def关键词        functionName函数名        (参数,参数,……不限个数)        冒号


return 返回值,返回值,返回值,……不限个数


无返回值:

def关键词        functionName函数名        (参数,参数,……不限个数)        冒号


由此可以产生四种函数情况:

1、无参数,无返回值:

def sayHello():
    print('Hello,GYZB')

2、有参数,无返回值:

def sayHello(name):
    print('Hello'+ name)

3、无参数,有返回值:

def sayHello():
    return 'Hello, GYZB'

GY = sayHello()
print(GY)

4、有参数,有返回值:

def sayHello(name):
    return ('Hello' + name)
GY = sayHello(GYZB)
print(GY)


二、在 Python 中有一个值称为 None,它表示没有值。None 是 NoneType 数据类型 的唯一值(其他编程语言可能称这个值为 null、nil 或 undefined)。就像布尔值 True 和 False 一样,None 必须大写首字母 N。 

有一个使用 None 的地方就是 print()的返回值。例如:

hello = print('Hello')
None == hello

上面执行的结果是True。并不是指hello不存在,而是指hello没有值。hello没有值的原因是print()只是打印没有return返回值。

由以上可以猜测到,所有的无返回值的函数,都可以在末尾加上return None。那么python内部是这样做的吗?答案是YES!


三、关键字参数

“ 关键字参数”是由函数调用时加在它们前面的关键字来识别的。关键 字参数通常用于可选变元。例如,print()函数有可选的变元 end 和 sep,分别指定在 参数末尾打印什么,以及在参数之间打印什么来隔开它们。 

print('Hello')
print('World')
输出结果:

Hello
World

设置 end 关键字参数,将它变成另一个字符串。

print('Hello', end='') 
print('World') 
输出结果:
HelloWorld

设置sep关键字参数,替换默认的分割字符串。

print('Hello', 'World')
结果是:

Hello World


设置之后:

print('Hello', 'World', sep = ',')
结果:

Hello,World

四、局部和全局作用域

在被调用函数内赋值的变元和变量,处于该函数的“局部作用域”。在所有函 数之外赋值的变量,属于“全局作用域”。处于局部作用域的变量,被称为“局部 变量”。处于全局作用域的变量,被称为“全局变量”。一个变量必是其中一种,不能既是局部的又是全局的。 

“作用域”就像是变量的容器。一个函数被调用时,就创建了一个局部作用域。在这个函数内赋值的所有变量, 存在于该局部作用域内。该函数返回时,这个局部作用域就被销毁了,这些变量就丢失了。

作用域很重要,理由如下: 

  全局作用域中的代码不能使用任何局部变量;

  但是,局部作用域可以访问全局变量; 

  一个函数的局部作用域中的代码,不能使用其他局部作用域中的变量。 

  如果在不同的作用域中,你可以用相同的名字命名不同的变量。也就是说,可以有一个名为 name 的局部变量,和一个名为 name 的全局变量。 

如果需要在一个函数内修改全局变量,就使用 global 语句。如果在函数的顶部 有 global name 这样的代码,它就告诉 Python,“ 在这个函数中,name 指的是全局变 量,所以不要用这个名字创建一个局部变量。”

def sayHello():
    global name
    name = 'GYZB'

name = 'Bitch'
sayHello()
print(name)

难点:如果没有global,最后的结果是Bitch,有global,结果是GYZB。没有global,函数会自己创建一个name,赋值然后销毁,不会影响外部的全局变量name。

五、异常处理

错误可以由 try 和 except 语句来处理。那些可能出错的语句被放在 try 子句中。 如果错误发生,程序执行就转到接下来的 except 子句开始处。 用法如下:

try关键字       冒号

缩进(用Tab或者英文状态下的四个空格)的执行语句

except关键字        errorName错误标识名           冒号

缩进(用Tab或者英文状态下的四个空格)的执行语句


一旦执行到except就不会回到try函数。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值