一、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 则不用执行判断