(一)条件语句
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

晓楠南
9 声望0 粉丝