Day5-Python分支循环以及循环关键字

1. 流程控制

1)顺序结构: 从上往下依次执行所有的代码(默认)
print('abc')
print(123)

2)分支结构:根据条件执行某段代码
python中实现分支结构的方式只有一种:if

3)循环结构:让指定代码重复执行
python中实现循环结构的方式只有两种:forwhile

2. 分支结构: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')

3. for循环

循环:让代码重复执行

3.1 for循环

"""
语法:
for 变量 in 序列:
    循环体

说明:
for  - 关键字;固定写法
变量  - 可以是已经赋值过的变量也可以是没有赋值过的变量
in   - 关键字;固定写法
序列  - 任何容器型数据类型的数据;字符串、列表、元组、集合、字典、迭代器、生成器、range...
:    - 固定写法
循环体  -   和 for 保持一个缩进的一条或者多条语句;需要被重复执行的一条或者多条语句

执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值执行一次循环体。
(for 循环的循环次数由序列中元素的个数决定)
"""
for x in 'hello':
    print(x)
    print('====')

3.2 range 函数 - 用来产生指定范围内的数字序列

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)13579
range(10, 0, -1)10987654321

for x in range(1, 10, 2):
    print(x)

4. while循环

"""
语法:
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)
"""

5.三目运算符

5.1 C、Java、JS、object-C语言的三目运算符: ?:

"""
语法:
表达式1?表达式2:表达式3

运算规则:
判断表达式1的结果是否为真,整个三目运算表达式的结果是表达式2的值,否则是表达式3的值
"""

# 实例:
a = 10 > 20?30:40
print(a)   # 40

5.2 Python中的三目运算符: if-else

"""
语法: 
表达式2 if 表达式1 else 表达式3

运算规则:
判断表达式1的结果是否为真,整个三目运算表达式的结果是表达式2的值,否则是表达式3的值
"""
# 实例:
a = 30 if 100 > 20 else 40
print(a)

6. 循环关键字

6.1 continue

"""
continue 是循环体中的关键字,只能出现在循环中。

作用:如果在执行循环的过程中遇到了continue当次循环直接结束,直接进入下次循环的判断
"""
# 实例:
for x in range(5):
	print('======')
	continue
	print('++++++')  # 不打印

6.2 break

"""
break是循环体中的关键字,只能出现在循环中。
如果在执行循环的过程中遇到了break,当次循环直接结束。
"""

for x in range(5):
	print('======')
	break
	print('++++++')    # 不打印 当次循环直接结束

6.3 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, '是素数')

6.4 for 循环和 while 循环怎么选择

"""
如果循环次数不确定就使用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('输入有误!请重新输入!')

你可能感兴趣的:(初学必看,笔记,python,经验分享,其他)