python流程控制

计算机程序在解决某个具体问题时,包括三种情形,即顺序执行所有的语句、选择执行部分的语句和循环执行部分语句,这正好对应着程序设计中的     三种程序执行结构流程:顺序结构、选择结构和循环结构。

事实证明,任何一个能用计算机解决的问题,只要应用这三种基本结构来写出的程序都能解决。Python语言当然也具有这三种基本结构

1、IF 选择结构语句

{

简单分支语句


if 判断条件:

执行语句1……

else:

执行语句2……

  此时,条件1成立时执行语句1,;条件2成立时执行语句2

name = 'luren'

if name == 'python':         # 判断变量否为'python' | name == 'python' ### 字符串的比较

print 'welcome boss'    # 并输出欢迎信息

else:

print name              # 条件不成立时输出变量名称

   

 多个分支结构:


if 判断条件:

执行语句1……

elif:

执行语句2……

else:

执行语句3……

此时,条件1成立时执行语句1,;条件2成立时执行语句2;条件1和条件2都不成立时执行语句3


x = int(raw_input("请输入您的总分:"))

if x >= 90:

   print('优')

elif x>=80:

     print('良')

elif x >= 70:

    print('中')

elif x >= 60:

    print('合格')

else:

      print('不合格')


if语句多个条件

num = 9

if num >= 0 and num <= 10:    # 判断值是否在0~10之间

print 'hello'

>>> hello # 输出结果

num = 10

if num < 0 or num > 10:    # 判断值是否在小于0或大于10

print 'hello'

else:

print 'undefine'

>>> undefine # 输出结果

num = 8

# 判断值是否在0~5或者10~15之间

if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):    

print 'hello'

else:

print 'undefine'

嵌套条件语句

     if<条件>:

          if<条件>:

               <语句1>

          elif<条件>:

               <语句2>:

     else:

          <语句3>

编写条件语句时,应该尽量避免使用嵌套语句。嵌套语句不便于阅读,而且可能会忽略一些可能性。


}


2、while 循环语句

{

在给定的判断条件为 true 时执行循环体,否则退出循环体

count = 0

while (count < 9):

print 'The count is:', count

count = count + 1

print "Good bye!"

循环使用 else 语句

count = 0

while count < 5:

print count, " is  less than 5"

count = count + 1

else:

print count, " is not less than 5"

while True:

xxxx


嵌套循环 你可以在while循环体中嵌套for/while循环


while expression:

   while expression:

      statement(s)

   statement(s)



i = 2

while(i < 100):

   j = 2

   while(j <= (i/j)):

      if not(i%j): break

      j = j + 1

   if (j > i/j) : print i, " 是素数"

   i = i + 1


print "Good bye!"

}


3、for 循环语句

{


python 中 for 语句结构是在一个序列上遍历

words = ['cat', 'windows', 'linux']

for w in words:

print w, len(w)



重复执行语句

fruits = ['banana', 'apple',  'mango']

for index in range(len(fruits)):

   print '当前水果 :', fruits[index]

 

print "Good bye!"


循环使用 else 语句 , else可以用于for循环,当循环自然终止,即没有被break中止时,会执行else下的语句

for num in range(10,20):  # 迭代 10 到 20 之间的数字

   for i in range(2,num): # 根据因子迭代

    if num%i == 0:      # 确定第一个因子

      j=num/i          # 计算第二个因子

        print '%d 等于 %d * %d' % (num,i,j)

          break            # 跳出当前循环

  else:                  # 循环的 else 部分

      print num, '是一个质数'

}


4、enumrate

{

使用内置 enumerate 函数进行遍历:

for index, item in enumerate(sequence):

    process(index, item)


>>> 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



}

5、三元运算符

{ 

if语句可以使用在一个单语句中,实现三元运算符,基本形式:<表达式1> if <条件> else <表达式2>


}

6、循环控制语句


{


break 语句 在语句块执行过程中终止循环,并且跳出整个循环

continue 语句 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。

pass 语句 pass是空语句,是为了保持程序结构的完整性,用于需要一个语句以符合语法,但又什么都不需要做时, 也可以用于写一个空函数


>>> for n in range (2,10):

...     for x in range (2,n):

...         if n % x == 0:

...            print n, 'equals', x, '*', n/x

...            break

...     else:

...         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

}


break 和 continue 语句,循环时使用else,else可以用于for循环,当循环自然终止,即没有被break中止时,会执行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:

...         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


 break 和 continue 语句,循环时使用else, else可以用于for循环,当循环自然终止,即没有被break中止时,会执行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:

...         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





}


7、xrange,range

{

如果需要迭代一个数字序列的话,可以使用range()函数,range()函数可以生成等差级数,

for语句的循环对象可以是列表、元组以及字符串,可以通过range()函数产生一个迭代值,以完成计数循环

>>> range (5) 

[0, 1, 2, 3, 4]

>>> range (2,5)

[2, 3, 4]

>>> range (5,10,1)

[5, 6, 7, 8, 9]

>>> range (5,10,2)

[5, 7, 9]

>>> range (5,10,3)

[5, 8]

xrange生成的不是一个数组,而是一个生成器

>>> xrange(5)

xrange(5)

>>> list(xrange(5))

[0, 1, 2, 3, 4]

>>> xrange(1,5)

xrange(1, 5)

>>> list(xrange(1,5))

[1, 2, 3, 4]

>>> xrange(0,6,2)

xrange(0, 6, 2)

>>> list(xrange(0,6,2))

[0, 2, 4]


for语句使用range()函数可以构建基于已知循环次数的循环程序,也可以以range()生成的数字作为索引来访问列表、元组、字符串中的值。

  需要注意的是,range() 函数返回的对象表现为它是一个列表,但事实上它并不是,range()函数并不是在调用时一次生成整个序列,而是遍历一次才产生一个值,以减少内存的占用,其本质是一个迭代器。

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章