一、顺序结构
代码自上而下依次运行
x = 1
x = x + 1
X = X + X + 1
print(X)
...
out
3
二、分支结构(if条件)
"""
代码缩进:
在python中使用缩进来的方式来表示代码的从属关系
一般情况下我们采用四个空格来表示缩进(尽量使用空格键,python中可以使用TAB键)
同属于一个关键字的子代码必须保持相同的缩进量,即同级代码保持相同的缩进量
ps:简单记忆,遇到冒号从属的下行代码必缩进
"""
# 需求 :如果年龄大于18岁,打印成年
age = 21
if age > 18:
print('成年') # 与if是从属关系
...
成年
"""
if 条件:
条件成立之后才会执行的代码
"""
if 和 else
# 需求 :如果年龄大于18岁,打印成年,否则打印未成年
age = 12
if age > 18:
print('成年')
else:
print('未成年')
...
out
未成年
if 和 elif
# 需求 :如果年龄小于30,打印继续努力,小于40岁,打印三十而立,小于50,打印四十不惑,否则活到老学到老
age = 33
if age < 30:
print("继续努力")
elif age < 40:
print("三十而立")
elif age < 50:
print("四十不惑")
else:
print("活到老学到老")
...
out
三十而立
"""
if 条件1:
代码1
代码2
...
elif 条件2:
代码1
代码2
...
else:
代码1
代码2
...
自上而下
条件1成立 执行if的子代码 elif和else都不执行
条件2成立(说明条件1没有成立) 执行elif的子代码 if和else都不执行
如果条件都不成立 则走最后的else子代码 if和elif都不执行
elif可以写多个
"""
多个条件
# if 条件可以是一个,也可以是多个
gender = 'male'
age = 26
weight = 120
if gender == 'male' and age <30 and weight <160:
print('一起吃饭')
else:
print('家里着火')
...
out
一起吃饭
if 嵌套
# if 子代码可以嵌套一个或多个 if 语句
gender = 'male'
age = 26
weight = 120
is_ok = False
is_sure = False
if gender == 'male' and age <30 and weight <160:
print('可以一起吃饭吗?')
if is_ok:
print('很高兴认识你')
else:
print('可以朋友吗?')
if is_sure:
print('加个微信')
else:
print('拜拜了您内')
else:
print('我家又着火了')
...
out
可以一起吃饭吗?
可以朋友吗?
拜拜了您内
练习
# 1.成绩评判系统
"""
分数大于90 打印优秀
分数大于80 打印良好
分数大于70 打印一般
分数大于60 打印及格
分数小于60 打印挂科
"""
score = input('score>>>:')
score = int(score)
if score > 90:
print('优秀')
elif score > 80:
print('良好')
elif score > 70:
print('一般')
elif score > 60:
print('及格')
else:
print('挂科')
...
out
score>>> 10
挂科
# 2.用户登录功能
# a.获取用户的用户名和密码
username = input('username>>>:')
password = input('password>>>:')
# b.判断用户名和密码是否正确
if username == 'richer' and password == '666':
print('登录成功!')
else:
print('登录错误')
...
out
username>>>:richer
password>>>:666
登陆成功
# 3.根据星期的不同做出不同的动作 周一到周五划水 周六周日躺平
today = input('周几>>>:')
if today in ('一','二','三','四','五'):
print('摸鱼')
elif today in ('六','七'):
print('躺平')
else:
print('见了鬼了')
...
out
周几>>>:一
摸鱼
三、循环结构
1.while 循环
while True:
# 1.获取用户的用户名和密码
username = input('username>>>:')
password = input('password>>>:')
# 2.判断用户名和密码是否正确
if username == 'richer' and password == '666':
print('登录成功')
else:
print('用户名或密码错误')
...
out
username>>>: jack
password>>>: 666
用户名或密码错误
username>>>:
"""
while 条件
循环体代码1
循环体代码2
...
当条件成立时,会依次执行while子代码
子代码运行结束后再次返回到条件处判断条件是否成立,如果成立继续执行,如果不成立则结束循环
即while 条件为False的时候
"""
break 结束循环
# while也可以与else搭配使用
count = 1
while count < 11:
if count == 7:
break # 结束离它最近的一个循环即本层循环
print(count)
# 让count自增1
count += 1
else:
print('循环结束') # 当while没有被break主动结束的情况下自动结束了 则会走else
...
out
1
2
3
4
5
6
continue 跳过本次循环,开始下一次循环
# 循环打印1-10,除了数字
count = 1
while count < 11:
if count == 7:
count += 1
continue # 跳过7,开始下一次循环
print(count)
count += 1
...
out
1
2
3
4
5
6
8
9
10
while 循环嵌套
# while 循环内部可以嵌套一个或多个while 循环
while True:
username = input('username>>>:')
password = input('password>>>:')
if username == 'richer' and password == '666':
print('登录成功')
while True:
command = input('command>>>:')
if command == 'q':
break
print('正在执行您的命令:%s'%command)
break
else:
print('用户名或密码错误')
...
out
username>>>:richer
password>>>:666
登录成功
command>>>:正在执行您的命令:功能1
command>>>:q
全局标志位
# 利用flag标识符的方式即全局标志位,在单层循环的退出中,使用break能退出多层循环
flag = True
while flag:
username = input('username>>>:')
password = input('password>>>:')
if username == 'richer' and password == '666':
print('登录成功')
while flag:
command = input('command>>>:')
if command == 'q':
flag = False
print('正在执行您的命令:%s'%command)
break
else:
print('用户名或密码错误')
...
out
username>>>:richer
password>>>:666
登录成功
command>>>:正在执行您的命令:功能1
command>>>:q
2.for 循环
for 循环能够做到的事情while循环都可以做到,但是for 循环使用起来比while更加简单快捷
while循环:
name_list = ['jason','egon','kevin','tony']
print(len(name_list)) # 4
# 使用while循环将列表中的元素依次打印出来
count = 0
while count < len(name_list):
print(name_list[count])
count += 1
...
out
4
jason
egon
kevin
tony
for循环:
name_list = ['jason','egon','kevin','tony']
for name in name_list:
print(name)
...
out
jason
egon
kevin
tony
"""
for 变量名 in 可迭代对象: # 对象可看成是 字符串 列表 字典等类型
若不知道变量名起什么,一般都是起i、j、item等
"""
for i in 'world': # for循环字符串,会将单个的字符依次赋值给变量名i
print(i)
...
out
w
o
r
l
d
for i in {'name':'jason','pwd':123}: # for循环字典,只会依次拿到字典的key
print(i)
...
out
name
pwd
range()
# 简单的看成是一个能够产生一个含有多个元素的列表
for i in range(5):
print(i)
...
out
0
1
2
3
4
for i in range(1,5):
print(i)
...
out
1
2
3
4
for i in range(1,5,2): # 2第三位是间隔位数即步长
print(i)
...
out
1
3
"""
range(起始位置,终止位置),顾头不顾尾
"""
"""
range()
在python3中,需要值的时候才会给你z值,不需要的时候就不给,节省内存
在python2中,直接生成一个列表range(5) >>> [0,1,2,3,4],不节省内存
xrange(),等价于 python3里面的range()
"""
break
for i in [1,2,3,4,5,6]:
if i == 4:
break # 结束本层for循环 与while+break一致
print(i)
...
out
1
2
3
continue
for i in [1,2,3,4,5,6]:
if i == 4:
continue # 结束本次for循环 与while+continue一致
print(i)
...
out
1
2
3
5
6
for 与 else
# for循环正常结束之后走else,否则不走,与while+else一致
for i in range(5):
if i == 3:
break
print(i)
else:
print('快结束了')
...
out
0
1
2
for 循环嵌套
# 九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print('%s*%s=%s'%(i,j,i*j),end=' ')
print()
...
out
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81