Python计算机二级(四)
type
status
date
slug
summary
tags
category
icon
password
一、前言
看一下前面都学了些什么:
三、程序控制结构
1、程序的三种控制结构
2、程序的分支结构:单分支结构、二分支结构、多分支结构
3、程序的循环结构:遍历循环、无限循环、break和continue循环控制
4、程序的异常处理:try-except
各位可以再复习一下,再看正文前先过一遍脑子。不会的可以去看一下前面的:
二、正文
看一下今天学什么:
四、函数和代码复用
1、函数的定义和使用;
2、函数的参数传递:可选参数传递、参数名称传递、函数的返回值;
3、变量的作用域:局部变量和全局变量。
1、函数的定义和使用
我们先来想一想我们在中学数学中学到的函数长什么样:
f(x) = y
即输入x通过f()来得到y。
程序里的函数也长这样。让我们来看一个例子:
def f(x):
y = x+1
return y
在这里,我定义了一个函数叫做f(),形如: f(x) = x+1
其中,x为输入值,y为输出值。
所以我们就不难看出python函数的语法:
def(声明一个函数,就像一个记号) <函数名>(<输入值>[可写可不写]) :
而使用也很简单:
y = f(1)#当有return时
f(1)#
注意:无论有没有参数,一定要有括号。你必须要以x、y的顺序设置。
def f():
return 1
#你必须要以x、y的顺序设置,例如:
def chu(x,y):
return x/y
print(chu(1,2))
output:
0.5
2、函数的参数传递:可选参数传递、参数名称传递、函数的返回值
有可选必有必选。先讲一下必选参数。
必选参数:函数调用的时候必须传入的参数。例如:
def chu(x,y):
return x/y
print(chu(1))
error:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
d:\Untitled-1.ipynb Cell 9 in <cell line: 3>()
1 def chu(x,y):
2 return x/y
----> 3 print(chu(1))
TypeError: chu() missing 1 required positional argument: 'y'
必须要填上y。
可选参数传递:
默认参数:在函数定义时,给参数一个默认值。调用该函数时可以不给有默认值的参数传值,这样调用时的参数可以减少。
例如:
def f(x,y,z=1):
return (x*y)**z
print(f(1,2))#x,y是必选参数,必须要写
print(f(1,2,2))#z是默认参数,可写可不写。不写时默认为1
注意:默认参数必须在必选参数的后面,否则无法完成函数定义,Python会提示SyntaxError异常。
选读:
例如:
def add_end(L=[]):
L.append('END')
return L
print(add_end([1, 2, 3]))
print(add_end())
print(add_end())
output:
[1, 2, 3, 'END']
['END']
['END', 'END']
你们也看到了,最后L的值为['END', 'END']。这是因为L只生成一次,这个对象就一直存在。
参数名称传递:
eg:
def
cs
(a,b,c):
print(a)
print(b)
print(c)
cs(a
=
1,b
=
2,c
=
3)
output:
1
2
3
函数的返回值:
在一开始我就讲过return,这里细讲。
返回0个值:
像这样:
def f(a, b, c, d, e, f):
print("a={}".format(a))
print("b={}".format(b))
print("c={}".format(c))
print("d={}".format(d))
print("e={}".format(e))
print("f={}".format(f))
没有return,于是不返回值。
返回多个值:
用return返回多个值的时候,多个值以元组类型保存。(元组类型可以理解成列表,只是这个列表里面的值不能被改变。这也是为什么采用元组的原因,因为数据不能被改变,就保护了数据的安全性。)
eg:
def s(a,b):
return b,a
print(s(1,2),type(s(1,2)))
output:
(2, 1) <class 'tuple'>#tuple就是元组
3、变量的作用域:局部变量和全局变量
这个我在第一篇就讲过,现在再讲一遍吧。
定义在函数外部,模块内部的变量称为全局变量
定义在函数内部的变量称为局部变量
局部变量在函数调用时才能够被创建,在函数调用之后会自动销毁
全局变量,所有函数都可以直接访问
eg:
a = 1
def w(): #这是一个函数
c = a
print(c)
error:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Untitled-1.ipynb Cell 3 in <cell line: 4>()
2 def w():
3 c = 1
----> 4 print(c)
NameError: name 'c' is not defined
a 是全局变量,而c是局部变量。
最后
现在,你已经学会了第四章的内容,你也离结业更进了一步。
看一下下一章的内容:
五、组合数据类型
Loading...