条件语句:
注意1) condition后面的冒号 2) elif
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
循环语句:
#还是注意冒号,我在想如果语法中不加冒号会有什么不妥
while condition:
statement_block
# while .. else,觉得有点多余。
while condition:
statement_block
else:
statement_block
# for .. in
for <variable> in <sequence>:
<statements>
break 语句用于跳出当前循环体,和c一样。
# range()
range(5) --> 0,1,2,3,4
range(5, 9) --> 5,6,7,8
range(0, 10, 3) -->0,3,6,9
listA = list(range(5)) # a=[0,1,2,3,4]
迭代器:
迭代器是一个可以记住遍历的位置的对象。可以很方便的是访问集合元素。两个基本的方法:iter() 和 next()。看到这里,java的感觉出来了。
生成器:
有的时候,我们希望每次调用函数的时候一个一个的得到每个 list 元素而不是直接得到一个完整的 list 来节省内存,这个时候 yield 就很有用。
函数:
def 函数名(参数列表):
函数体
参数传递中的可更改(mutable)与不可更改(immutable)对象。
不可更改的对象:strings, tuples, 和 numbers,尤其记住数字和字符串是不可更改的,无法通过改形参来改实参的值。
可以修改的对象:list,dict
关键字参数不错,容易读和理解。
默认参数必须放在最后面:func(name, age =35):
Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如 if/elif/else/、try/except、for/while等)是不会引入新的作用域的,也就是说这这些语句内定义的变量,外部也可以访问。
当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字。
num = 1
def fun1():
global num # 需要使用 global 关键字声明
print(num) # 输出1
num = 123
print(num) # 输出123