条件判断

计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= 18: print('your age is', age) print('adult') 根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做。 也可以给
条件判断

模式匹配

当我们用if ... elif ... elif ... else ...判断时,会写很长一串代码,可读性较差。 如果要针对某个变量匹配若干种情况,可以使用match语句。 例如,某个学生的成绩只能是A、B、C,用if语句编写如下: score = 'B' if score == 'A': print('score is A.') elif score == 'B': print('score i
模式匹配

循环

要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 6 要计算1+2+3+...+10,勉强也能写出来。 但是,要计算1+2+3+...+10000,直接写表达式就不可能了。 为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。 Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子: names =
循环

使用dict和set

dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list: names = scores = 给定一个名字,要查找对应的成
使用dict和set

调用函数

Python内置了很多有用的函数,我们可以直接调用。 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数。可以直接从Python的官方网站查看文档,也可以在交互式命令行通过help(abs)查看abs函数的帮助信息。 调用abs函数: >>> abs(100) 100 >>> abs(-20) 20 >>> abs
调用函数

定义函数

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。 我们以自定义一个求绝对值的my_abs函数为例: def my_abs(x): if x >= 0: return x else: return -x print(my_abs(-99)) 请自行测试并调用my_abs看看返回结果是否正
定义函数

函数的参数

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。 Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。 位置参
函数的参数

递归函数

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出: fact(n)=n!=1×2×3×⋅⋅⋅×(n−1)×n=(n−1)!×n=fact(n−1)×n 所以,fact(n)可以表示为n x fact(n-1),只有n=1时需要特殊处理。 于是,fact(
递归函数