主要内容

  • if 控制
  • for 循环
  • range()函数
  • break,continu 语句
  • pass

if控制

当进行多个条件判断时,可以使用 if ... elif ... elif ... else
elif 其它判断条件。
else 所有条件都不执行。

  1. >>> x = int(input("Please enter an integer: "))
  2. Please enter an integer: 42
  3. >>> if x < 0:
  4. ... x = 0
  5. ... print('Negative changed to zero')
  6. ... elif x == 0:
  7. ... print('Zero')
  8. ... elif x == 1:
  9. ... print('Single')
  10. ... else:
  11. ... print('More')
  12. ...
  13. More

for循环

可以对 list,string等类型进行for循环。

  1. >>> #List中添加一些字符串:
  2. ... words = ['cat', 'window', 'defenestrate']
  3. >>> for w in words:
  4. ... print(w, len(w))
  5. ...
  6. cat 3
  7. window 6
  8. defenestrate 12
  1. >>> for w in words[:]: # 循环过程中可以对List中的元素进行修改
  2. ... if len(w) > 6:
  3. ... words.insert(0, w) # 将w 复制一份放到 words的第一位 【0 表示words 索引】
  4. ...
  5. >>> words
  6. ['defenestrate', 'cat', 'window', 'defenestrate']

range() 函数

迭代生成一组数字,默认从0开始,每个累加1,到n-1 结束。

  1. >>> for i in range(5):
  2. ... print(i)
  3. ...
  4. 0
  5. 1
  6. 2
  7. 3
  8. 4

也可以指定生成。

  1. range(5, 10) # 5开始,累加1,最后一个数字小于10
  2. 5, 6, 7, 8, 9
  3. range(0, 10, 3) # 0开始,累加3,最后一个值小于10
  4. 0, 3, 6, 9
  5. range(-10, -100, -30) # -10开始,累加-30,负数累加最后不能小于或等于 -100
  6. -10, -40, -70

工作中最常与for循环一起遍历List等数据。

  1. >>> a = ['Mary', 'had', 'a', 'little', 'lamb']
  2. >>> for i in range(len(a)):
  3. ... print(i, a[i])
  4. ...
  5. 0 Mary
  6. 1 had
  7. 2 a
  8. 3 little
  9. 4 lamb

range()生成List 数据

  1. >>> list(range(5))
  2. [0, 1, 2, 3, 4]

break ,continue

在for循环或者while循环中,使用break 直接跳出循环,不再往下执行。

  1. >>> for n in range(2, 10):
  2. ... for x in range(2, n):
  3. ... if n % x == 0:
  4. ... print(n, 'equals', x, '*', n//x)
  5. ... break
  6. ... else:
  7. ... # loop fell through without finding a factor
  8. ... print(n, 'is a prime number')
  9. ...
  10. 2 is a prime number
  11. 3 is a prime number
  12. 4 equals 2 * 2
  13. 5 is a prime number
  14. 6 equals 2 * 3
  15. 7 is a prime number
  16. 8 equals 2 * 4
  17. 9 equals 3 * 3

continue 会中断当前迭代,然后继续运行下一个迭代,而不是把这个迭代全部中断

  1. >>> for num in range(2, 10):
  2. ... if num % 2 == 0:
  3. ... print("Found an even number", num)
  4. ... continue
  5. ... print("Found a number", num)
  6. Found an even number 2
  7. Found a number 3
  8. Found an even number 4
  9. Found a number 5
  10. Found an even number 6
  11. Found a number 7
  12. Found an even number 8
  13. Found a number 9

pass

作为占位符使用,什么不会执行

  1. >>> while True:
  2. ... pass # 按下快捷键 Ctrl+c (Windows 操作系统) 或 Command+c(Mac系统)终止
  3. ...

定义一个class时

  1. >>> class MyEmptyClass:
  2. ... pass
  3. ...

函数中使用时

  1. >>> def initlog(*args):
  2. ... pass # Remember to implement this!
  3. ...