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 条件控制与 循环的主要内容,如果未能解决你的问题,请参考以下文章

Python条件控制语句与循环控制语句

python 条件控制与 循环

python基础之条件控制与循环

常用python日期日志获取内容循环的代码片段

Python条件控制与循环

Python条件与循环