python 条件控制与 循环
Posted 千寻与林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 条件控制与 循环相关的知识,希望对你有一定的参考价值。
1.条件控制(if语句)
条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块
if 语句
用 elif 代替了 else if
if...elif...else
if condition_1(条件1): statement_block_1 # 如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句 elif condition_2: statement_block_2 else: statement_block_3
if 嵌套
if 表达式1: 语句 if 表达式2: 语句 elif 表达式3: 语句 else: 语句 elif 表达式4: 语句 else: 语句
2.循环语句 (while 和 for)
while 循环
while 判断条件: 语句
无限循环
var = 1 while var == 1 : # 设置条件表达式永远为 true 来实现无限循环
while 循环使用 else 语句
在 while … else 在条件语句为 false 时执行 else 的语句块:
while a < 5: print (a, " 小于 5") # 当条件 a< 5 为True时执行 else: print (a, " 大于或等于 5") # 当条件 a< 5 为True时执行
for 语句
for循环可以遍历任何序列的项目,如一个列表([\'Google\', \'Runoob\', 1997, 2000])或者一个字符串("abcdefg")。
for循环的一般格式如下:
for <variable(变量)> in <sequence(序列)>: <statements(声明,结果)> else: <statements>
实例:
>>>languages = ["C", "C++", "Perl", "Python"] >>> for x in languages: ... print (x) ... C C++ Perl Python
range()函数
注意:range()区间是左闭右开,range(2,2)是空的!
range(2)是 从0开始算:0 1 相当于range(0,2)
1.如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列:
>>>for i in range(5): ... print(i) ... 0 1 2 3 4
2.使用range指定区间的值:
>>>for i in range(5,9) : # range()区间是左闭右开 print(i) 5 6 7 8
3.使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做\'步长\'):
>>>for i in range(0, 10, 3) : print(i) 0 3 6 9 负数 >>>for i in range(-10, -100, -30) : print(i) -10 -40 -70
4.结合range()和len()函数以遍历一个序列的索引
Python len() 方法返回对象(字符、列表、元组等)长度或项目个数。
>>>str = "runoob" >>> len(str) # 字符串长度 6 >>> l = [1,2,3,4,5] >>> len(l) # 列表元素个数 5
实例:
其中:len(a) 是 6
range(len(a)) 是 0 1 2 3 4 5
>>>a = [\'Google\', \'Baidu\', \'Runoob\', \'Taobao\', \'QQ\'] >>> for i in range(len(a)): ... print(i, a[i]) ... 0 Google 1 Baidu 2 Runoob 3 Taobao 4 QQ
5.使用range()函数来创建一个列表
>>list(range(5))
[0, 1, 2, 3, 4]
6.求1-100 的和:
>>> sum(range(101))
5050
"break和continue语句及循环中的else子句"
break 语句可以跳出 for 和 while 的循环体
#!/usr/bin/python3 for letter in \'Runoob\': # 第一个实例 if letter == \'b\': break print (\'当前字母为 :\', letter) var = 10 # 第二个实例 while var > 0: print (\'当期变量值为 :\', var) var = var -1 if var == 5: break print ("Good bye!")
输出:
当前字母为 : R
当前字母为 : u
当前字母为 : n
当前字母为 : o
当前字母为 : o
当期变量值为 : 10
当期变量值为 : 9
当期变量值为 : 8
当期变量值为 : 7
当期变量值为 : 6
Good bye!
continue语句被用来告诉Python跳过当前循环块中(比如n = 1)的剩余语句( 就是放弃执行n = 1 这个循环),然后继续进行下一轮循环(n = 2)。
#!/usr/bin/python3 for var in "abccccccde": # 第一个实例 if var == "c": # 字母为 c 时跳过输出 continue print("当前字母为:",var) var = 10 # 第二个实例 while var > 0: var = var -1 if var == 5: # 变量为 5 时跳过输出 continue print (\'当前变量值 :\', var) print ("Good bye!")
当前字母 : a
当前字母 : b
当前字母 : d
当前字母 : e
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
Good bye!
循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被break终止时不执行。
pass 语句
Python pass就是一条空语句。在代码段中或定义函数的时候,如果没有内容,或者先不做任何处理,直接跳过,就可以使用pass。
作用:pass只是为了防止语法错误:
>>if a>1: pass #如果没有内容,可以先写pass,但是如果不写pass,就会语法错误
>>while True: pass # 等待键盘中断 (Ctrl+C)
enumerate 函数(枚举)
使用内置 enumerate 函数进行遍历
for index, item in enumerate(sequence): # enumerate 枚举
process(index, item) # sequence 序列
>>> sequence = [12, 34, 34, 23, 45, 76, 89] >>> for i, j in enumerate(sequence): ... print(i, j) ... 0 12 1 34 2 34 3 23 4 45 5 76 6 89
以上是关于python 条件控制与 循环的主要内容,如果未能解决你的问题,请参考以下文章