3.1 def语句和参数
和C语言一样,Python也可以在程序中自定义函数,写法如下:
def hello(name):
print('Hello,'+name)
hello('taoA')
hell0('World')
3.2 返回值和return语句
函数的返回值可以用return语句传递
import random
def getanswer(answernumber):
if (answernumber % 2) == 0:
return '偶数'
else:
return '奇数'
ran = random.randint(1,10)
print(ran)
my_string=getanswer(ran)
print(my_string)
3.3 None值
None值就表示没有值的意思
在函数定义中,如果没有return语句,Python会在后面默认添加 return None ,也就是说,如果使用不带值的return语句,或没有使用return语句,只能返回None。
3.4 关键字参数和print()值
print()函数里面可以定义打印的格式,它里面设置了两个变量,分别是end和sep,各自规定了在参数的末尾要打印什么,在参数之间打印什么来隔开它们。默认end为换行。
3.5 局部和全局变量
-
局部变量不能在全局作用域内使用
-
局部作用域不能使用其它局部作用域内的变量
-
全局变量可以在局部作用域中读取
-
尽量不要使用名称相同的局部变量和全局变量
3.6 global语句
global语句的作用是:告诉Python,这个变量是全局变量。
def spam():
global i
i = 'Hello,World'
i = 'taoA'
spam()
print(i)
有没有方法来区分一个变量是处于局部作用域还是全局作用域呢?
有4条法则:
1.如果变量在全局作用域中使用(在所用函数之外),它就是全局变量
2.如果在一个函数中,有针对该变量的global语句,它就是全局变量
3.否则,如果它出现在函数中的赋值语句中,它就是局部变量
4.但是,如果它没有用在赋值语句中,它就是全局变量
3.7 异常处理
下面的程序中有一个'除数为0'的错误:
def spam(i):
return 10 / i
for i in range(10,-1,-1):
print(spam(i))
当一个数除以0时,就会出现ZeroDivisionError: division by zero,这时我们可以用try和except语句来处理错误:
基本逻辑是:如果在函数调用中的try语句块中发生错误,程序执行就会立刻转到except子句的代码中运行。执行完之后,程序继续执行。
def spam(i):
return 10 / i
for i in range(10,-1,-1):
try:
print(spam(i))
except ZeroDivisionError:
print('Error: Invalid argument')
标签:语句,return,函数,spam,作用域,print,全局变量
From: https://www.cnblogs.com/taoA/p/17139037.html