(一)条件语句
Python条件语句是经过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
if 语句用于控制程序的执行,基本形式为:python
if 判断条件: 执行语句…… elif 判断条件: 执行语句…… else: 执行语句……
注意:(1)elif语句能够有0个或多个
(1)因为 python 并不支持 switch 语句,因此多个条件判断,只能用 elif 来实现,若是判断须要多个条件需同时判断时,能够使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的状况下,判断条件才成功。
练习1:if语句练习-多个elif-判断成绩等级less
#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:猜数dom
>>> 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计算oop
>>> count=0 >>> while(count<9): ... print "the index is:",count ... count+=1
练习2:列表倒序打印code
>>> 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:用于序列类型utf-8
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