循环部分

for-in循环

range类型

用于产生不变的数值序列,例如:

  • range(101)产生从0到100的整数序列
  • range(100)产生从0到99的整数序列
  • range(1,100,2)产生从1到99的技术序列,2作为步长(每次增加的值)

函数部分

函数的参数处理

​ python对于函数的参数并没有严格的限制要求,一个函数可以有默认的参数值(在没有参数传入的时候就会调用该默认值),但在实际执行的时候,并不一定完全按照函数声明时的参数来传入,这样就使得一个函数有多种不同的使用方式,不必再像其他语言那样额外写函数的重载。

​ 除此之外,当我们不确定函数的参数个数的时候,可以使用可变参数,例如:

1
2
3
4
5
6
# 参数前加“*”表示可变参数,可以是零个或多个
def add(*numbers):
total = 0
for i in numbers:
total += i
return total

使用模块管理函数

​ 由于python不支持函数的重载,因此,如果在同一个项目中发现有两个同名的函数 ,那么最后声明的函数就会覆盖之前的所有同名函数。为了能够区分,我们让python中的每一个文件代表一个模块,当我们想要调用他们就可以使用 from 文件名 import 函数名来精确调用。

​ 还需要区别from 文件名 import 函数名import 文件名 as 变量名,前者如果重复使用还是会出现覆盖,例如:

1
2
3
4
5
6
7
8
9
10
from module1 import method
from module2 import method
method()
# 调用的结果是module2中的method函数,module1中的method函数被覆盖

import module1 as m1
import module2 as m2
m1.method()
m2.method()
# 可以具体的区分调用的函数对象

​ 如果我们调用的模块中出现有可以执行但是我们并不希望在调用时执行的代码,我们可以引入一个条件 if __name__ == '__main__',在调用该模块时,该条件以下的语句不会执行,只有在python解释器直接执行的时候,该条件才成立。

  • python解释器直接执行的模块的名字才是”__main__“

局部变量与全局变量

  • python搜索变量的顺序是:局部作用域嵌套作用域全局作用域内置作用域

​ 函数中不能直接访问全局变量,因此在函数中我们需要使用global关键字来调用全局变量;函数的内部函数要访问嵌套作用域中的变量则需要使用nonlocal关键字(修改外部函数的变量)

字符串和常用数据结构

了解字符串的常见使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
str = "hello, world!"
# 获得字符串的长度,包含空格
len(str)
# 将字符串的首字母大写
str.capitalize()
# 将字符串的所有字母大写
str.upper()
# 查找字符串中字符所在的位置
str.find("or") # 8
# 与.find功能相同,但是找不到字符时会发生异常
str.index("or")
# 检查字符串是否以指定的字符开头
str.starswitch('He') # false
str.starswitch('hel') # true
# 检查字符串是否以指定的字符结尾
str.endswitch('ld!') # true
# 将字符串以指定的宽度居中,并在两端填充指定的字符
str.center(50, '*')
# 将字符串以指定的宽度靠右防止,并填充指定的字符
str.rjust(50, '*')
# 字符串切片
str[初始位:指定位:步数]
# 检查字符串是否有数字构成
str.isdigit()
# 检查字符串是否以字母构成
str.isalpha()
# 检查字符串是否以数字和字母构成
str.isalnum()
# 将字符串左右两侧的空格修剪掉
str.strip()