《用python玩转数据》学习笔记2
1、判断语句
1、if... elif... else...
if expretion:
expr_true_suite
if expression:
expr_true_suite
elif expression2:
expr2_true_suite
:
:
elif expressionN:
exprN_true_suite
else:
none_of_the_above_suite
注意:保持语句缩进一致,而且避免使用tab进行缩进
2、range函数
range(start,end,step=1)
range(start,end)
range(end)
3、循环
while循环
while expression:
suite_to_repeat
for 循环
for iter_var in iterable_object:
suite_to_repeat
4、break和continue
(1)break语句终止当前循环,转而执行循环之后的语句
(2)在while和for循环中,continue语句的作用:
–停止当前循环,重新进入循环
–while循环则判断循环条件是否满足
–for循环则判断迭代是否已经结束
5、自定义函数
使用def定义自定义函数
例如:
def hello_func():
print("Hello!")
自定义函数的参数
- 默认参数:函数的参数可以有一个默认值,如果提供有默认值,在函数定义中,默认参数以赋值语句的形式提供(以下程序未显示缩进,注意格式)
def func(x = True):
if x:
print("input is True")
- 默认参数:可变的默认参数。默认参数一般需要放置在参数列表的最后,否则会引起报错“SyntaxError: non-default argument follows default argument”
- 关键字参数:让调用者通过使用参数名区分参数。允许改变参数列表中的参数顺序
def test_func(x, test_string):
if x:
print(test_string)
调用:
(1)统一通过位置来传递参数
test_func(True, "hello world")
(2)通过关键字来传递参数
test_func(x = True, test_string = "hello world")
test_func(test_string = "hello world", x = True)
(3)不能一半使用关键字参数,一半不使用(即是要么全部使用关键字穿参,要么全部通过位置)
test_func(x = True, "hello world")
SyntaxError: non-keyword argafter keyword arg - 函数可以像参数一样传递给另外一个函数
def double_func(x)
return x*2
def show_func(f, x):
print(f(x))
输入:
show_func(double_func, 5)
输出:
10
6、lambda函数
re = lambda x, y: x + y*2
print(re(1,2))
输出:
5
7、递归
- 递归必须要有边界条件,即停止递归的条件
- 递归的代码更简洁,更符合自然逻辑,更容易理解
- 相较于循环,递归的计算复杂度和资源消耗更大。
经典问题:汉诺塔
8、变量作用域
- 全局变量
- 局部变量
9、异常处理
9.1查看异常类 dir(__builtins__)
9.2异常类及相关描述
9.3异常处理方法
-
try...except...语句
-
多个except子句和一个except块捕捉多个异常
-
空except子句和as
-
try...except...else...