Python函数的理解使用

1.函数理解

1.1定义函数

在Python中函数需要使用关键“def”来定义。

示例:

def myname():
  print("小王同学")
myname()

输出:

小王同学

代码逻辑解释:第一步定义函数def加函数名后跟括号;调用函数最后一行函数名加括号。

1.2函数的返回值

使用return热闹语句时,参数在函数中产生返回值。

def shuxue(x):
  return 6 * x
print(shuxue(3))
print(shuxue(5))
print(shuxue(9))

输出:

18
30
54

1.3pass语句

函数定义不能为空,如果有需求有一个定义没有内容的函数,需要写入pass语句防止报错。

示例:

def myfunction():
  pass

2.函数的参数

2.1参数的理解

信息可以通过参数媒介传递给函数。参数在函数名后的括号内,需要用逗号将参数隔开。

示例:

def myname(name):
  print(name + " 小王")
myname("憨憨")
myname("王帅哥")

输出:

憨憨 小王
王帅哥 小王

2.2形参和实参

形参:调用该参数没有赋值;

实参:调用函数时就已经给参数赋值;

注意:参数的名字可以随意命名。

区分实参和形参

def sun1(a,b):
  s=a+b
  return s
x,y=3,20
print("x+y=",sun1(x,y))

代码解释:其中a,b是形参;x,y是实参。

2.3参数数量

定义函数时,函数的参数个数并不限制,可以有多个,也可以有一个。

必须使用正确数量的参数调用函数。如果函数中需要有两个,则必须使用两个参数调用函数需要两个参数,数量上一模一样。

示例:

def myname(fname, lname):
  print(fname + " " + lname)
myname("小王", "同志")

输出:

小王 同志

2.4关键字参数

定义:如果在调用函数的时候,使用参数相同的名字传递参数,这种就被称为:关键字参数。

def store(food,price):
  if food=='bread':
     return price*0.8
  if food=='cheese':
     return price*0.5
  else:
    return 0
str=store(price=20,food='cheese')
print("您选择的价格折后是",str)

输入:

您选择的价格折后是 10.0

解释:food就是关键字参数,使用相同名字传递参数。

2.5不定长参数

如果对传递给函数的参数数量不确定,就可以在参数名称前加一个*。这样的话,该函数就可以接受一个参数组(数量不限的参数)。

第一个示例:

def myname(*xinxi):
  print("帅哥 " + xinxi[1])
myname("名字", "性别", "家庭住址")

输出:

帅哥 性别

第二个示例:

def myname(*xinxi):
  print("帅哥 " + xinxi[0])
myname("名字", "性别", "家庭住址")

输出:

帅哥 名字

第三个示例:

def myname(*xinxi):
  print("帅哥 " + xinxi[2])
myname("名字", "性别", "家庭住址")

输出:

帅哥 家庭住址

以上三个示例便于理解*的作用。

2.6默认值参数

在定义函数时,可以直接为函数的参数赋值设置成默认状态。

示例:

def my(country = "憨憨"):
  print("小王" + country)
my()

输出:

小王憨憨

2.7列表作为参数传递

如定义一个表,将其传递给函数时仍为一个表的形式存在。

示例:

def shuiguo(food):
  for x in food:
    print(x)
fruits = ["苹果", "香蕉", "葡萄","哈密瓜"]
shuiguo(fruits)

输出:

苹果
香蕉
葡萄
哈密瓜

3.全局变量和局部变量(global)

3.1全局变量,局部变量

全局变量:指的是在整个程序的执行过程中都有效的变量。(定义在函数之外的变量)

局部变量:就是定义在一个函数体内部的变量。

a = 0
num = 0
def test():
    a = 1
    num = a + 2
    print(num)
test()
print(num)

输出:

3
0

解释:num就是全局变量,a等于零到函数内部重新赋予a等于一个新的值。所以寒素外部num等于0,test函数中的就是局部变量。

3.2global全局变量

global的作用:就是向程序宣告,用它定义的变量就是全局变量不是局部变量。

示例:

x=0
print(x)
def my():
  global x
  x=1
  print(x)
my()
print(x)

输出:

0
1
1

解释:关键字global将函数内部的局部变量x改为全局变量。

4.匿名函数

使用lambda创建匿名函数。一个匿名函数可以包含任意数量的参数,但只有一个表达式。

x = lambda a, b, c : a + b + c
print(x(5, 6, 2))

输出:

13

匿名函数优点:可以省去定义函数的过程,让代码更加简洁;使用lambda不需要考虑函数命名的问题;代码更加容易理解。

(理解难度因人而异)