1)顺序结构: 从上往下依次执行所有的代码(默认)
print('abc')
print(123)
2)分支结构:根据条件执行某段代码
python中实现分支结构的方式只有一种:if
3)循环结构:让指定代码重复执行
python中实现循环结构的方式只有两种:for、while
if
1)if
单分支结构 - 满足某个条件就执行某个操作,不满足就不执行
"""
语法:
if 条件语句:
代码块
说明:
if - if是关键字,固定写法
条件语句 -可以是任何有结果的表达式;比如:独立的数据、运算表达式(不能是赋值运算)、函数调用表达式。
: - : 冒号是固定写法
代码块 - 和 if 保持一个缩进的一条或者多条语句; 满足条件才会执行的一条或者多条语句。(至少要有一条语句)
执行过程:先判断条件语句是否为True(如果不是布尔值就先h转换成布尔再判断), 如果为True就执行if语句中的代码块,否则就不执行。
"""
举例:
num = 101
if num < 100:
print('第一条语句')
print('第二条语句')
print('第三条语句')
# 练习:输入年龄,根据年龄值的范围打印 '成年人'
age = 12
if age >= 18:
print('成年人')
2)if
双分支结构 - 满足某个条件就执行某个操作,不满足就执行另外一个操作
"""
语法:
if 条件语句:
代码块1
else:
代码块2
说明:
else - 关键字,固定写法
: - 固定写法
代码块2 - 和 else 保持一个缩进的一条或者多条语句;条件不满足的时候需要执行的一条或者多条语句
执行过程:
先判断条件语句是否为True,如果是就执行代码块1否则执行代码块2
"""
# 练习:根据输入的年龄值的范围打印'成年'或者'未成年'
age = 18
if age < 18:
print('未成年')
else:
print('成年')
3) if
多分支结构 - 满足不同的条件执行不同的操作(后面的条件是在前面的条件不成立的时候判断的
"""
语法:
if 条件语句1:
代码块1
elif 条件语句2:
代码块2
elif 条件语句3:
代码块3
...
else:
代码块N
说明:
elif - elif是关键字,固定写法
这个结构中 elif 可以根据情况有1个或者多个;else 也可以根据情况有或者没有
执行过程:
从前往后依次判断每个条件语句是否成,如果哪个条件是成立的,就执行对应的代码块,然后整个结构直接结束。
如果前面的条件都不成立,才执行else中的代码块
"""
# 练习:根据分数进行等级的判定([0, 60) - D, [60, 80)-C, [80, 90)-B, [90, 100]-A)
score = 89
if score < 60:
print('D')
elif score < 80:
print('C')
elif score < 90:
print('B')
else:
print('A')
循环
:让代码重复执行
"""
语法:
for 变量 in 序列:
循环体
说明:
for - 关键字;固定写法
变量 - 可以是已经赋值过的变量也可以是没有赋值过的变量
in - 关键字;固定写法
序列 - 任何容器型数据类型的数据;字符串、列表、元组、集合、字典、迭代器、生成器、range...
: - 固定写法
循环体 - 和 for 保持一个缩进的一条或者多条语句;需要被重复执行的一条或者多条语句
执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值执行一次循环体。
(for 循环的循环次数由序列中元素的个数决定)
"""
for x in 'hello':
print(x)
print('====')
1) range(N) - 产生 0 ~ N-1 的数字序列(N必须是正整数)
range(3): 0,1,2
for x in range(6):
print('++++', x)
2) range(M, N) - 产生 M ~ N-1 的数字序列(M,N是整数, M < N)
range(5, 11): 5,6,7,8,9,10
for x in range(5, 11):
print(x)
3)range(M, N, step)
range(1, 10, 2):1,3,5,7,9
range(10, 0, -1):10,9,8,7,6,5,4,3,2,1
for x in range(1, 10, 2):
print(x)
"""
语法:
while 条件语句:
循环体
说明:
while - 关键字,固定写法
条件语句 - 任何有结果的表达式;独立的数据、运算表达式(不能有赋值运算)、函数调用表达式
: - 固定写法
循环体 - 和while保持一个缩进的一条或者多条语句;需要重复执行的语句;
执行过程:
先判断条件语句是否为True,如果是就执行一次循环体,执行完再判断条件语句是否为True,为True再执行循环体
以此类推,直到条件语句的结果是False循环就结束
"""
"""
变量 = 0
while 变量 < 次数:
需要重复执行的操作
变量 += 1
"""
# 练习:执行4次打印 'hello'的操作,并统计次数
num = 0
while num < 4:
print('hello')
num += 1
print(num)
"""
解析:
num = 0
num < 4(True): print('hello'); num += 1 -> num = num + 1 = 1
num < 4(True): print('hello'); num += 1 -> num = num + 1 = 1+1=2
num < 4(True): print('hello'); num += 1 -> num = 3
num < 4(True): print('hello'); num += 1 -> num = 4
num < 4(False)
"""
C、Java、JS、object-C
语言的三目运算符: ?:
"""
语法:
表达式1?表达式2:表达式3
运算规则:
判断表达式1的结果是否为真,整个三目运算表达式的结果是表达式2的值,否则是表达式3的值
"""
# 实例:
a = 10 > 20?30:40
print(a) # 40
Python
中的三目运算符: if-else
"""
语法:
表达式2 if 表达式1 else 表达式3
运算规则:
判断表达式1的结果是否为真,整个三目运算表达式的结果是表达式2的值,否则是表达式3的值
"""
# 实例:
a = 30 if 100 > 20 else 40
print(a)
continue
"""
continue 是循环体中的关键字,只能出现在循环中。
作用:如果在执行循环的过程中遇到了continue当次循环直接结束,直接进入下次循环的判断
"""
# 实例:
for x in range(5):
print('======')
continue
print('++++++') # 不打印
break
"""
break是循环体中的关键字,只能出现在循环中。
如果在执行循环的过程中遇到了break,当次循环直接结束。
"""
for x in range(5):
print('======')
break
print('++++++') # 不打印 当次循环直接结束
else
"""
for-else结构:
for 变量 in 序列:
循环体
else:
代码块
while-else结构:
while 条件语句:
循环体
else:
代码块
功能:循环结构后加 else 不会影响原循环结构的执行;
如果和else关联的循环是自然死亡,代码块就会执行,
如果 else 关联的循环是因为遇到break而结束的那么else后面的代码块就不会执行。
"""
# 练习:判断数字是否是素数(质数)
# 思路:判断2 ~ num-1之间有没有一个能被 num 整除的数,
# 有说明 num 不是素数,否则 num 是素数
num = 151
for x in range(2, num):
if num % x == 0:
print(num, '不是素数')
break
else:
print(num, '是素数')
"""
如果循环次数不确定就使用while循环,否则就用for循环
"""
# 练习:写一个猜数字的小游戏
"""
随机生成一个0~100的数字,玩家不断输入数字,
直到输入的值和随机生成的那个值相等为止。几次猜中,评分。
"""
import random
# 导入随机数
num = random.randint(0, 100)
count = 0
while True:
num1 = int(input('请玩家输入数字(0~100):')) # 输入猜的数字
count += 1
if num1 == num:
print('恭喜你猜中了!游戏结束!')
if count > 7:
print('智商不足请充值!')
elif count < 4:
print('哇~厉害了!!!')
break
elif num1 > num:
print('猜大了,再小点!')
elif num1 < num:
print('猜小了,再大点')
else:
print('输入有误!请重新输入!')