与其他编程语言中的 if
语句一样,使用方法如下
if condition:
expressions
如果 condition
的值为 True
,将会执行 expressions
语句的内容,否则将跳过该语句往下执行。
x = 1
y = 2
z = 3
if x < y:
print('x is less than y')
上述代码中,if
语句的条件为 x < y
为 True
, 那么将执行条件内部语句,程序将输出 x is less than y
。 当我们将代码修改为一下
if x < y < z:
print('x is less than y, and y is less than z')
在这里的条件变成了 x < y < z
, 其相当于 x < y and y < z
, 如果 and
两边的条件都为 True
那么才会返回 True
。 注意这个用法是 python 语言特有,不鼓励 大家写出这样的代码,以便其他语言的程序员能够看懂你的代码。
基本使用 :
if condition:
true_expressions
else:
false_expressions
基本使用 :
if condition1:
true1_expressions
elif condition2:
true2_expressions
elif condtion3:
true3_expressions
elif ...
...
else:
else_expressions
如果有多个判断条件,那可以通过 elif
语句添加多个判断条件,一旦某个条件为 True
,那么将执行对应的 expression
。 并在之代码执行完毕后跳出该 if-elif-else
语句块,往下执行。
def
定义函数Python 使用 def
开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的 具体功能实现代码,如果想要函数有返回值, 在 expressions
中的逻辑代码中用 return
返回。
def function_name(parameters):
expressions
实例 :
def func(a, b):
c = a+b
print('the c is ', c)
在这里定义的一个函数,其参数就是两个数值,函数的功能就是把两个参数加起来。运行脚本后,在 Python 提示符内调用函数 func
, 如果不指定参数 func()
, 那么将会出错; 输出 func(1, 2)
,将 a=1, b=2
传入函数,输出 the c is 3
。所以在调用函数时候,参数个数和位置一定要按照函数定义。如果我们忘记了函数的参数的位置,只知道各个参数的名字,可以在 函数调用的过程中给指明特定的参数 func(a=1, b=2)
, 这样的话,参数的位置将不受影响,所以 func(b=2,a=1)
是同样的 的效果。
函数默认参数 :
def function_name(para_1,...,para_n=defau_n,..., para_m=defau_m):
expressions
函数声明只需要在需要默认参数的地方用 =
号给定即可, 但是要注意所有的默认参数都不能出现在非默认参数的前面。
进阶使用 :
增加单元测试代码(只是作为主模块运行时才执行,提供给其他模块的时候不执行)
if __name__ == '__main__':
#code_here
顾名思义,函数的可变参数是传入的参数可以变化的,1个,2个到任意个。当然可以将这些 参数封装成一个 list
或者 tuple
传入,但不够 pythonic
。使用可变参数可以很好解决该问题,注意可变参数在函数定义不能出现在特定参数和默认参数前面,因为可变参数会吞噬掉这些参数
def report(name, *grades):
total_grade = 0
for grade in grades:
total_grade += grade
print(name, 'total grade is ', total_grade)
定义了一个函数,传入一个参数为 name
, 后面的参数 *grades
使用了 *
修饰,表明该参数是一个可变参数,这是一个可迭代的对象。该函数输入姓名和各科的成绩,输出姓名和总共成绩。所以可以这样调用函数 report('Mike', 8, 9)
,输出的结果为 Mike total grade is 17
, 也可以这样调用 report('Mike', 8, 9, 10)
,输出的结果为 Mike total grade is 27
3.
关键字参数(传字典类型)关键字参数可以传入0个或者任意个含参数名的参数,这些参数名在函数定义中并没有出现,这些参数在函数内部自动封装成一个字典(dict).
def portrait(name, **kw):
print('name is', name)
for k,v in kw.items():
print(k, v)
定义了一个函数,传入一个参数 name
, 和关键字参数 kw
,使用了 **
修饰。表明该参数是关键字参数,通常来讲关键字参数是放在函数参数列表的最后。如果调用参数portrait('Mike', age=24, country='China', education='bachelor')
输出:
name is Mike
age 24
country China
education bachelor
通过可变参数和关键字参数,任何函数都可以用 universal_func(*args, **kw)
表达。