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