Python3——分支、循环

说在前面

  python中的代码块使用缩进来区分,而不是其他类C语言中使用{  code  }来表示一个代码块。

  python中使用的缩进是4个空格,相邻且相同缩进的代码属于同一级。

 

if 、elif、else

a = True
b = False

if a == True:
    if b == False:
        print("a is True and b is False")
    else:
        print("a is True and b is True")
elif a == False:
    if b == False:
        print("a is False and b is False")
    else:
        print("a is False and b is True")
else:
    print("something wrong")

  注意:

  1、python中的判断条件不需要使用()括起来,直接跟在if、elif的后面,要有一个空格和前面的if、elif分隔。

  2、python中if和elif后面的条件,以及满足条件后,要执行的语句,之间使用“:”来分隔。

  3、使用缩进来表示层级、嵌套关系。

  4、可以使用pass占位语句,不会进行任何操作。

  5、python中没有其他语言中的switch、case结构。

  6、python中没有else if、只有elif(和shell一样)

 

while

  while和if的结构很相似。

#计算0到10的总和
cnt = 0
sum = 0
while cnt <= 10:
    sum += cnt
    cnt += 1

print("the result is", sum)

  需要注意的是,python的while中,在循环条件不满足的时候,支持一个else操作。

#计算0到10的总和
cnt = 0
sum = 0
while cnt <= 10:
    sum += cnt
    cnt += 1
else:
    print("the value of cnt large than 10")

print("the result is", sum)

#输出
#the value of cnt large than 10
#the result is 55

  其实这个操作,看自己的习惯吧,即使不用else,在while循环的后面写一条语句,也会顺序执行到。

  注意不要尝试在else中修改迭代器的值,尝试再次进入循环。这是错误的想法,因为,只有当循环不满足条件的时候,才会执行到else,之后不会再进入到while中。

  比如下面的做法是错误的。

#计算0到10的总和
cnt = 0
sum = 0
first_time = 0
while cnt <= 10:
    sum += cnt
    cnt += 1
else:
    #如果是第一次不满足while循环的条件,就将cnt置为1
    #尝试再次进入上面这个while循环,但是会失败
    if first_time == 0:   
        cnt = 1
        first_time = 1

print("the value of cnt is", cnt)
print("the result is", sum)

# 输出
# the value of cnt is 1
# the result is 55

  注意:

  1、python中没有do while循环。

  2、python中没有goto语句,所以不能在循环中使用goto到其他地方。

  3、循环条件如果是数值的自增或者自减的时候,注意python中没有“--”和“++”运算符,所以不要尝试使用i++或者i--,包括++i,--i,这些都是不支持的。还是老老实实用-=或者+=吧。

  4、while后面的else表示,整个循环正常结束,并不是使用break强制退出的,这里可以做其他处理

 

 

for

  for主要用来“遍历”。遍历的对象可以是:list、tuple、set、dict

for fruit in ["apple", "banana", "orange", "pear"]:
    if fruit == "orange":
        print("catch the orange")
        break  # break打断循环后,不会执行与for对应的else语句
    elif fruit == "banana":
        print("discard the banana")
        continue
    else:
        print(fruit)
    print("print a fruit")
else:
    print("for end")

# 输出
# apple
# print a fruit
# discard the banana
# catch the orange
# 注意没有打印else中的for end

 

for item in [[1, 2, 3], [4,5,6]]:
    for i in item:
        if i == 2:
            break   #打断内层循环,并不会打破外层循环
        else:
            print(i, end=" ")
else:
    print("printed all list")

# 输出
# 1 4 5 6 printed all list

  

 

  其他语言中的for循环,可以指定循环的次数,以及每次循环后的迭代器的操作。python中只有一种格式,但是可以使用下面的一些方法实现他们的做法。

  使用range(start, end, step=1)生成一个

for x in range(0, 10):
    print(x, end=" ")
# 0 1 2 3 4 5 6 7 8 9

for x in range(10, 0, -1):
    print(x, end=" ")
# 10 9 8 7 6 5 4 3 2 1

for x in range(0, 10, 2):
    print(x, end=" ")
# 0 2 4 6 8

  实现其他语言中的for循环

a = ["apple", "orange", "banana", "pear"]
for index in range(0, len(a)):
    print(a[index])

  等同于其他语言中的for:

for (int i = 0; i < len(a); i++) {
    print a[i]
}

  

 

posted @ 2018-10-06 16:42  寻觅beyond  阅读(426)  评论(0)    收藏  举报
返回顶部