Python学习从0开始——003控制流
一、while,if,for
注意缩进格式
>>> a, b = 0, 1
>>> while a < 1000: #while循环
... print(a, end=',')#循环体内属于同一代码块,需保持相同缩进
... a, b = b, a+b #=两边一一对应赋值
... #此行直接回车表示结束
0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
>>> x = int(input("Please enter an integer: ")) #获取输入
Please enter an integer: 13
>>> x
13
>>> if x < 0:
... x = 0
... print('Negative changed to zero')
... elif x == 0:
... print('Zero')
... elif x == 1:
... print('Single')
... else:
... print('More')
...
More
>>> words = ['cat', 'window', 'defenestrate']
>>> for w in words:
... print(w, len(w))
...
cat 3
window 6
defenestrate 12
>>> users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}
>>> for user, status in users.copy().items():
... if status == 'inactive':
... del users[user] #通过del 关键字进行删除,还可以删除变量或对象
...
>>> users
{'Hans': 'active', '景太郎': 'active'}
>>> active_users = {}
>>> for user, status in users.items():
... if status == 'active':
... active_users[user] = status
...
>>> active_users
{'Hans': 'active', '景太郎': 'active'}
二、range()
>>> for i in range(5): #内置函数,用于生成等差数列
... print(i)
...
0
1
2
3
4
>>> list(range(5, 10)) #生成的序列绝不会包括给定的终止值
[5, 6, 7, 8, 9]
>>> list(range(0, 10, 3)) #ange 可以不从 0 开始,且可以按给定的步长递增
[0, 3, 6, 9]
>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)): #按索引迭代序列
... print(i, a[i])
...
0 Mary
1 had
2 a
3 little
4 lamb
>>> range(10) #该对象只有在被迭代时才返回所期望的列表项,并没有真正生成含有全部项的列表,从而节省空间
range(0, 10)
>>> sum(range(4))
6
三、break,continue,else
>>> for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print(n, 'equals', x, '*', n//x)
... break #跳出最近的一层循环
... else: #for循环中else子句会在循环成功结束最后一次迭代之后执行,while在条件变为假值时执行
... print(n, 'is a prime number')
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
>>> for num in range(2, 10):
... if num % 2 == 0:
... print("Found an even number", num)
... continue #执行循环的下一次迭代
... print("Found an odd number", num)
...
Found an even number 2
Found an odd number 3
Found an even number 4
Found an odd number 5
Found an even number 6
Found an odd number 7
Found an even number 8
Found an odd number 9
四、pass
>>> class MyEmptyClass:#创建一个类,具体内容暂不实现
... pass
...
>>> def initlog(*args): #定义一个函数,具体内容暂不实现,相当于占位符
... pass
...
>>> for num in range(2, 10):
... if num % 2 == 0:
... pass #保证程序完整行
... else:
... print(num)
...
3
5
7
9