Python3 简单语法
条件控制
循环语句
-
while 循环 while condition:
statements
用 ctrl+c 退出无限循环 -
while-else 语句 while condition:
statements1
else:
statements2
-
for 语句 for <variable> in <sequence>:
<statements>
else:
<statements>
这里,
<
s
e
q
u
e
n
c
e
>
<sequence>
<sequence> 可以是一个列表,也可以使用
r
a
n
g
e
(
)
range()
range() 函数。 rang(5) 访问
[
0
,
5
)
[0,5)
[0,5) rang(a,b) 访问
[
a
,
b
)
[a,b)
[a,b) 也可以提供增量
c
c
c,变成
r
a
n
g
(
a
,
b
,
c
)
rang(a,b,c)
rang(a,b,c) 也可以用
r
a
n
g
e
(
)
range()
range() 函数创建一个列表 list(range(5)) -
break 和 continue 语句 break 执行后,不执行 for / while 的 else 语句 -
pass 语句 pass 是空语句,保持程序结构的完整性
迭代器与生成器
-
迭代是 Python 最强大的功能之一,是访问集合元素的一种方式。 迭代器有两个基本的语法:iter() 和 next() 字符串,列表或元组对象都可用于创建迭代器 list = [1,2,3,4]
it = iter(list)
for x in it:
print(x)
it = iter(list)
while True:
try:
print(next(it))
except StopIteration:
sys.exit()
-
创建一个迭代器: 把一个类作为一个迭代器需要在类中实现两个方法 __iter__() 与 __next__() class MyNumbers:
def __iter__(self):
self.a = 1
return self
def __next__(self):
x = self.a
self.a += 1
return x
-
StopIteration: 异常用于标识迭代的完成,防止出现无限循环的情况 class MyNumbers:
def __iter__(self):
self.a = 1
return self
def __next__(self):
x = self.a
self.a += 1
if x >= 20:
raise StopIteration
return x
生成器
-
在 Python 中,使用了 yield 的函数被称为生成器 生成器是一个返回迭代器的函数,只能用于迭代操作,简单理解的话,生成器就是一个迭代器。 在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前的运行信息,返回 yield 的值,并在下一次执行 next() 方法时从当前位置继续运行
函数
-
定义函数: 代码块用
d
e
f
def
def 关键词开头,后接函数标识符名称和圆括号 传入参数放在圆括号中间 函数内容以冒号起始,缩进 return[exp] 结束函数。不带表达式的 return 相当于返回 None def function (args):
statements
-
可更改类型(mutable)与不可更改(immutable)对象 strings,tuples,numbers 是不可更改的对象, list,dict 是可更改的对象 不可变类型:a=5 后再 a=10 ,实际是新生成了一个 int 值对象 10,再让 a 指向它,5 被丢弃了 可变类型:list=[1,2,3,4] ,修改 list[2]=5 ,则是直接修改了第三个元素 -
函数的参数传递: 不可变类型:类似 C++ 的值传递,如整数、字符串、元组 可变类型:类似C++的引用传递,如列表、字典 -
可使用的正式参数类型: 必须参数:必须以正确顺序传入的参数,否则会出现语法错误 def func(str):
print(str)
func()
关键字参数:关键字参数允许函数调用时参数的顺序与声明的不一致 def func(str):
print(str)
func(str = "hello")
默认参数:不传参数,会使用默认参数 def func(name, age=35):
pass
func("Alice")
不定长参数:使用 * 修饰,会以元组的形式导入 def func(arg1, *vartuple):
print(vartuple)
func(10,20,30)
若使用 ** ,则会以字典的形式导入 def func(**vardict):
print(vardict)
func(a = 1,b = 2)
参数 * 可以单独出现,但星号后的参数必须用关键字传入 -
匿名函数: 使用 lambda 来创建匿名函数 匿名,即不再使用 def 语句这样标准的形式定义一个函数 lambda 只是一个表达式,函数体比 def 简单很多。 语法:lambda[arg1[,arg2,...argn]]:expression sum = lambda arg1,arg2: arg1 + arg2
print(sum(10,20))
|