python的程序控制结构

  • 顺序结构
  • 分支结构
  • 单分支
  • 双分支
  • 多分支
  • 循环结构
  • while 循环
  • for循环
  • 嵌套循环
  • else子句
  • 流程控制 pass / continue/ break


顺序结构:

自上而下顺序执行。最简单的结构

分支结构


单分支

a = 2 
if a > 1 :
    print("bigger")
运行结果:
bigger

双分支

_username = "root"
_password = "redhat"
username = input("username:")
password = input("password:")
if username == _username and password == _password :
    print(" welcom user  {name} login..."  .format(name=username))
else:
    print("\nfuck off, you don\'t have the permission")

运行结果:
username:root
password:redhat
welcom user  root login...

多分支

if 条件1 : 
    命令1
elif 条件2 :
    命令2
elif 条件3 :
    命令3
else :
    命令4
age_of_jinglun = 56
guess_age = int(input("guess age:"))
if guess_age == age_of_jinglun :
    print("yes,you got it ")
elif guess_age > age_of_jinglun :
   print("she is younger")
else :
   print("think bigger")
运行结果:
guess age:70
she is younger

总结: 分支结构永远只有一个被执行


循环结构


while 循环

a = 0
while a < 3:
    print(a)
    a += 1 
结果:
0
1
2

在while循环中,循环体需要修改条件,使得while条件为假,防止死循环

#while True:
#print("hello")
死循环
while引出的bool值

bool布尔值一共就有两个值,一个叫TRue,一个叫FALSE

bool(1)
运行结果:
True

bool(-1)
运行结果:
True

bool(0)
运行结果:
False

bool(None)
运行结果:
False

bool([])
运行结果: 
False

bool({})
运行结果:
False

bool 值中 None和0和空内置结构(列表、字典、字符串),bool值都是False

#死循环
while 1:
    print("hello world")


for循环

for i in range (3) :
    print(i)
运行结果:
0
1
2

range(3) 是range(0,3)的简称

每一次循环从里面拿一个值,并且循环

for i in range(0,3):
    print(i)
运行结果:
 0
 1
 2

这是从0开始循环,循环到2结束(注意不是到3结束)
这叫for循环的顾头不顾尾原则


嵌套循环

a = 7
while a < 10:
    for i in range(0,3):
        print(a)
    a += 1

运行结果:
7
7
7
8
8
8
9
9
9


break

break语句会 离开 “最近”循环

while True:
    name = input("entre your name :")
    if name == "stop":
         break
    age = input("entre your age:")
    print("your name  is  %s ,your age is %s" %(name,age) )

# 结果:发现如果你在输入name 时输入了stop,那么就会立即中止
运行结果:

    entre your name :dailiang
    entre your age:23
    your name  is  dailiang ,your age is 23
    entre your name :stop

continue

continue,会跳到最近所在循环的开头处

# continue语句会立即跳到"最近"循环的顶端,此外也避免语句的嵌套。
# 下一个例子使用continue跳过奇数
x = 10
while x:
    x = x -1
    if x % 2 != 0 :
        continue
    print(x)

运行结果:

    8
    6
    4
    2
    0

pass

pass 什么事情也不做

pass是无占位的运算语句,当语法需要语句但实际并没有任何实用的语句可写时,就可以使用它

例如:
你想写个无限循环,每次迭代什么也不做,就写个pass

while True:
    pass
a = 10
while a > 3 :
    if a < 5:
        pass
    else :
        print(a)
    a = a-1
运行结果:
10
9
8
7
6
5


else 子句


while ..else 子句
while <test> :

<命令1>

else : 

<命令2>

注意: while与else组合是python独有的,不要与if: else:搞混,后面这个else: 是与while平行的

for.. else 子句
for  i in range(x):
    命令1
else:
    命令2

这个与while 。。。。else。。其实是一样的语法格式

age = 56

for i in range(3) :

    guesss_age = int(input("PLEASE INPUT AGE:"))

    if guesss_age == age :

        print("right")

        break

    elif guesss_age > age :

        print("try samall")

    else:

        print("try bigger")

else:

    exit("try too much times")

运行结果:
PLEASE INPUT AGE:56
right

break 双循环

status = False 
for i in range(10):
    for x in range(10):
        if x >= 3 :
            status = True
            break
        print(i,x)
    if status:
        break

运行结果:
0 0
0 1
0 2