Python 学习笔记 (2)―― 流程控制

一、if

True : 表示非空的量(比如:string, tuple , list , set , dictonary等),


所有非零数

False : 表示0 , None ,空的量等


作用:

(1)判断一个字符串是否为空

(2)判断运算结果是否为0

(3)判断一个表达式是否可用


例子1:

#!/usr/bin/python
x = int(raw_input("please input a number:"))
if x>=30:
        print "A"
elif x>=20:
        print "B"
else:
        print "Bad"


执行结果:

[root@localhost tmp]# python if.py
please input a number:33
A
[root@localhost tmp]# python if.py
please input a number:24
B
[root@localhost tmp]# python if.py
please input a number:1
Bad


例子2:

#!/usr/bin/python
x = int(raw_input("please input a number:"))
y = int(raw_input("please input a number:"))
if x>=30 and y>= 30:
        print "A"
elif x>=20:
        print "B"
else:
        print "Bad"


执行结果:

[root@localhost tmp]# python if.py
please input a number:44
please input a number:44
A
[root@localhost tmp]# python if.py
please input a number:20
please input a number:20
B


二、for

例子1:

#!/usr/bin/python
for x in "hello":
    print x
[root@web1 python]# python 1.py
h
e
l
l
o


例子2: 通过索引遍历字符串

#!/usr/bin/python
fruits = ['apple','banana','mango']
for index in range(len(fruits)):
    print 'Current fruit:',fruits[index]
print "Goodbye!"
[root@web1 python]# python 3.py
Current fruit: apple
Current fruit: banana
Current fruit: mango
Goodbye!


例子3: python中的for 有else 的关键字:(只在for循环正常结束后执行else语句)

#!/usr/bin/python
import time
for x in range(5):
        print x
        time.sleep(1)
else:
        print "End"
[root@web1 python]# python 4.py
0
1
2
3
4
End


不正常结束:(执行到中途按crtl+c 强制结束,可以看到else语句是没有执行的

[root@web1 python]# python 4.py
0
1
^CTraceback (most recent call last):
  File "4.py", line 5, in <module>
    time.sleep(1)
KeyboardInterrupt


例子4:break 关键字

#!/usr/bin/python
for x in range(1,11):
        print x
        if x == 6:
                break
else:
        print "End"
[root@web1 python]# python 5.py
1
2
3
4
5
6


例子5:continue 关键字


使用continue可以在单次循环中跳出下面循环语句

#!/usr/bin/python
for x in range(1,11):
        print x
        if x == 2:
                print "hello 22222"
                continue
        print "#"*20
[root@web1 python]# python 5.py
1
####################
2
hello 22222
3
####################



例子6:假如我要判断x=3但是,我还没想好满足条件要执行什么,这时候不能留空,而应该加个pass的关键字

#!/usr/bin/python
for x in range(1,11):
        print x
        if x == 3:
                pass


三、while

例子1:

#!/usr/bin/python
while True:
        x = raw_input("please input a number:")
        print x
        if x == '10':
                break
[root@web1 python]# python 6.py
please input a number:12
12
please input a number:34
34
please input a number:10
10


也可以这样:

#!/usr/bin/python
x = ""
while not x = "q":
        x = raw_input("please input a number:")
        print x


四、switch

switch 语句用于编写多分支结构的程序,类似于if... elif ... else 语句

switch 语句表达的分支结构比if... elif ... else 语句表达的更清晰,代码可读性更高但是python 并没有提供switch 语句,但我们可以通过字典实现switch 语句的功能,:

1、定义一个字典

2、调用字典的get()获取相应的表达式


例子:

(1)通过if... elif ... else实现

from __future__ import division
def jia(x,y):
        return x+y
def jian(x,y):
        return x-y
def cheng(x,y):
        return x*y
def chu(x,y):
        return x/y
def operator(x, o, y):
        if o == "+":
                print jia(x,y)
        elif o == "-":
                print jian(x,y)
        elif o == "*":
                print cheng(x,y)
        elif o == "/":
                print chu(x,y)
        else:
                pass
operator(10,"/",2)


(2)通过switch 实现

from __future__ import division
def jia(x,y):
        return x+y
def jian(x,y):
        return x-y
def cheng(x,y):
        return x*y
def chu(x,y):
        return x/y
operator = {"+":jia, "-":jian, "*":cheng, "/":chu}
def f(x, o, y):
        print operator.get(o)(x,y)
f(3, "/", 2)


可以看出通过if 来实现的执行效率并不高,比如,一个除法的操作,需要判断4次才能匹配到条件,而通过switch 则不用执行判断


你可能感兴趣的:(流程控制,python)