(一)条件语句
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
if 语句用于控制程序的执行,基本形式为:
if 判断条件:
执行语句……
elif 判断条件:
执行语句……
else:
执行语句……
注意:(1)elif语句可以有0个或多个
(1)由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
练习1:if语句练习-多个elif-判断成绩等级
#encoding=utf-8
def print_grade_level(grades):
if 90<=grades<=100:
print u'优秀'
elif 80<=grades<90:
print u'良好'
elif 60<=grades<80:
print u'及格'
else:
print u'不及格'
try:
grades=float(raw_input('please input your grade:'))
print_grade_level(grades)
except Exception,e:
print u"请输入正确的分数!"
练习2:猜数
>>> import random
>>> target_number=random.randint(1,5)
>>> guess_number=int(raw_input("input your guess number:"),)
input your guess number:4
>>> if guess_number ==target_number:
... print "you got it"
... elif guess_number>target_number:
... print "bigger"
... else:
... print "less"
you got it
(二)循环语句
1while循环
在给定的判断条件为 true 时执行循环体,否则退出循环体。
语句格式为:
while 判断条件:
执行语句……
else:
执行语句……
注意:
执行语句可以是单个语句或语句块;
判断条件可以是任何表达式,任何非零、或非空(null)的值均为True;
当判断条件为假即False时(参考bool中false的情况),循环结束。
练习1:打印出count计算
>>> count=0
>>> while(count<9):
... print "the index is:",count
... count+=1
练习2:列表倒序打印
>>> number=-1
>>> while number>=-len(lista):
... print lista[number]
... number-=1
练习3:猜数,循环猜数直到猜中为止
#coding=utf-8
import random
target_number=random.randint(1,5)
print target_number
guess_times=0
while 1:
guess_number=int(raw_input("please input your guess number:"))
guess_times+=1
if guess_number>target_number:
print "bigger"
elif guess_number<target_number:
print "less"
else:
print "you got it"
break
print "guess times :%s" %guess_times
for循环
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for iterating_var in sequence:
statements(s)
此处的sequence为序列,可以为元组、列表、字符串、字典。
for … else结构下
1.for里面的语句和普通的(没有else的for语句)没有区别;
2.else中的语句会在循环正常执行完后执行;
3.当for中语句通过break跳出而中断时,不会执行else。
练习1:用于序列类型
for eachLetter in "names":
... print "current letter:",eachLetter
练习2:通过序列项迭代
>>> nameList=['walter','nicole','steven','henry']
>>> for eachName in nameList:
... print eachName,"lim"
练习3:通过索引迭代
>>> nameList=['walter','nicole','steven','henry']
>>> for nameIdex in range(len(nameList)):
... print "liu",nameList[nameIdex]
练习4:
>>> nameList=["Donn","Shirley","Ben","Janice","David","Yen","Wendy"]
>>> for i,eachLee in enumerate(nameList):
... print "%d %s Lee"%(i+1,eachLee)
练习5:判断质数
>>>import math
>>>ss=int(raw_input("enter:"))
>>>for i in range(2,int(math.sqrt(ss))+1):
>>> if ss%i==0:
>>> print "%d is not prime"%ss
>>> break
>>>else:
>>> print "%d is prime"%ss
练习6:递规的用法
>>>def fact(n):
>>> if n<=1:
>>> return 1
>>> else:
>>> return n*fact(n-1)
注:当递归函数有return时,在递归的地方也要return,不然永远返回是None
练习6:嵌套输出10-50个数是1-5的数
方法一:
>>> for i in range(1,5):
... for j in range(1,6):
... print str(i)+str(j)
方法二:
>> for i in range(10,50):
.. if str(i)[1] in ["1","2","3","4","5"]:
.. print i
方法三:
lis=[1,2,3,4,5]
for i in range(10,51):
j=i%10
if j in lis:
print i
(三)break/continue/pass语句
(1)breakcontinue
break:跳出最近所在的循环(跳过整个循环语句)
continue:跳到最近所在循环的开头处(来到循环的首行)
pass:什么事也不做,只是空占位语句
循环else块:只有当循环正常离开时才会执行(也就是没有碰到break语句)
(3)直接退出多重循环三种方式
方法一:
class getoutofloop(Exception): pass
try:
for i in range(5):
for j in range(5):
for k in range(5):
if i == j == k == 3:
raise getoutofloop()
else:
print i, '----', j, '----', k
except getoutofloop:
Pass
方法二:
def test():
for i in range(5):
for j in range(5):
for k in range(5):
if i == j == k == 3:
return
else:
print i, '----', j, '----', k
test()
方法三:
for i in range(5):
for j in range(5):
for k in range(5):
if i == j == k == 3:
break
else:
print i, '----', j, '----', k
else: continue
break
else: continue
Break