贡献者: addis
有时我们在程序中做什么将取决于前面步骤的结果。在这种情况下,您可能会发现 if
语句很有帮助。假设我想知道一个二次方程 $ax^2+bx+c=0$ 有多少实根。下面的代码根据 $a$、$b$ 和 $c$ 的值告诉我根的数量。
a = 5
b = 7
c = -1
D = b**2 - 4*a*c
if D > 0:
print("two roots")
if D < 0:
print("no roots")
if D == 0:
print("one root")
通常 if
可以嵌套使用;循环语句可以与条件判断语句结合使用。例如,一个简单的打分系统:
x = 99
if x > 90:
print('A')
elif x > 80:
print('B')
else:
print('C')
True
,False
and
(&
),or
(|
),not
(不是 !
)
我们经常需要对某个操作重复执行多次,可以用 for
循环,例如输出 $1$ 到 $3$ 的平方:
for i in range(1,4):
print(i,i**2)
输出
1 1
2 4
3 9
注意,python 中用缩进来表示代码的范围,通常为一个 tab 制表符(即键盘上的 TAB 键),或者四个空格缩进;for
循环后面冒号必不可少。for
循环还可以遍历一个列表,对每个元素执行相同的操作。例如
A = np.array([3, 2, 4, 5, 1, 76])
for aa in A:
print(3*aa)
这里对列表每一个元素扩大 3 倍。如果用不得循环指标的时候可以用下划线代替:
for _ in range(3):
print('Hello Python')
此时连续输出 'Hello Python'
三次。
有时候我们并不知道循环多少次,此时可以用 while
循环。例如找到最小的 $n$,使得
while
循环实现。代码如下
a = 0
sum0 = 0.0
while sum0 < 50:
a = a + 1
sum0 = sum0+a**2
print(a, sum0)
输出
1 1.0
2 5.0
3 14.0
4 30.0
5 55.0
it = iter()
函数可以获取 set, list 等的迭代器。set 和 list 的迭代器分别为 set_iterator
,list_iterator
。string
也可以。
next(it)
返回下一个值(包括第一个值),没有 last
函数
for val in it:
__iter__(self)
和 __next__(self)
函数定义以上两个函数的行为。