1.流程控制

1.1简介

什么是流程控制?

在python中流程控制主要有顺序执行、选择执行、循环执行

  • 顺序结构就是让程序按照从头到尾的顺序依次执行每一条python代码,不重复执行任何代码,也不跳过任何代码。
  • 选择结构也称分支结构,就是让程序“拐弯”,有选择性的执行代码;换句话说就是可以跳过没用的代码,只执行有用的代码。
  • 循环结构让程序杀个回马枪,不断地重复执行同一段代码。
  • if
  • if...else
  • if...elif..else
  • while
  • while .else
  • for
  • for...else

1.1.1伪代码

是一种算法描述语言

用简单粗暴的文字来理解一下一段代码含义:

age = int(input("请输入你的年龄:")) 

如果 age >=18:    

输出("成年")

否则 

如果 age >=12:      

输出("少年")  

 否则      

 输出("儿童")

# 用代码实现上述文字
age = int(input("请输入你的年龄:"))
if age >=18:
    print("成年")
else:
    if age >=12:
        print("少年")
    else:
        print("儿童")

1.2分支结构

python的开发者有意的让违反了缩进规则的程序不能通过编译

  • if语句表达式代码块:

if 表达式:

代码块

  • if else语句

if 表达式:

代码块1

else:

代码块2

  • if elif else语句

if 表达式1:

代码块1:

elif 表达式2:

代码块2

elif 表达式3:

代码块3

.....

else:

代码n

对语法格式的说明:

  • "表达式"可以是一个单一的值或者变量,也可以是有运算符组成的复杂语句,形式不限,只要它能得到一个值就行
  • 代码块由具有相同缩进量的若干条语句组成
  • if、elif、else语句的最后都有:,不要忘记

1.2.1 if语句(单向分支)

如果你已经满18岁了,就可以进入网吧了

单向分支 if 判断语句:    判断成立执行的语句块

age = int(input("请输入你的年龄:"))
if age > 18:
    print("恭喜你,可以进入网吧嗨皮了")

1.2.2if...else(双向分支)

age = int(input("请输入你的年龄:"))
if age > 18:
    print("恭喜你,可以进入网吧嗨皮了")
else:
    print("不好意思,你未成年,不能进入网吧")

1.2.3if...elif...else(多向分支)

我们的考试成绩

在控制台输入你的成绩: 如果你考了90分以上  成绩为优秀 如果你考了80分以上  成绩为良好 如果你考了70分以上  成绩为中等 如果你考了60分以上  成绩为合格 否则              成绩不合格

score = int(input("请输入你的成绩:"))
if score >= 90:
    print("成绩优秀")
elif score >= 80 and score < 90:
    print("成绩良好")
elif score >= 70 and score < 80:
    print("成绩中等")
elif score >= 60 and score < 70:
    print("成绩合格")
else:
    print("成绩不合格")

1.2.4 if语句嵌套

if 表达式1:    if 表达式2:        代码块2    else:        代码块3 else:    代码块1

score = int(input("请输入你的成绩:"))
if score >= 0:
    if score >= 90:
        print("成绩优秀")
    elif score >= 80 and score < 90:
        print("成绩良好")
    elif score >= 70 and score < 80:
        print("成绩中等")
    elif score >= 60 and score < 70:
        print("成绩合格")
    else:
        print("成绩不合格")
else:
    print("你的输入有误")

1.2.5 pass关键字的使用

占位(pass本身并无意义,只代表占了一个位子而已,比如有时我们还没想到要赋予一个变量什么值或意义的时候,可以用pass占位。)

score = float(input("请输入你的分数:"))
if 0 < score <= 100:
    if score < 60:
        print("不及格")
    elif 60 <= score < 70:
        print("合格")
    elif 70 <= score < 80:
        pass
    elif 80 <= score < 90:
        print("优秀")
    else:
        pass
else:
    pass

1.2.6三目运算符

python是一种极简主义的编程语言,使用三目运算符可以有效的简化代码

#初始代码1
a = 10
b = 5
 max = 0
if a > b:
     max = a
else:
     max = b
print(max)

#使用三目运算符代码1描述为:
 max = a if a > b else b
 print(max)


#初始代码2
s = input("请输入:")
   if s == 'yes':
     print('ok')
   else:
     print(s)
 
#使用三目运算符代码2描述为:
 print('ok' if s =='yes' else s)

1.3循环结构

循环就是将一段代码不断的重复执行,直到循环结束程序再继续往下走

1.3.1while循环

if 条件表达式:
    代码块
    
while 条件表达式:
    代码块(循环体)
a = 0
while a < 10:
    print("我进来了")
    a += 1
    # 直到条件为false

# 分析
while 0<10
while 1<10
while 2<10
while 10<10——》条件表达式是false了,循环结束

完成一个小需求:


# 打印1-100所有数字,可以使用while循环 number = 1 while number < 100:    print(number)    number += 1


# 打印1-100所有数字,可以使用while循环
number = 1
while number < 100:
    print(number)
    number += 1

num = 98 ,98<100 进入循环,打印变量98 ,num+1

num = 99 ,99<100 进入循环,打印变量99 ,num+1

num = 100 ,100<100 ,false 结束循环

number = 1
while number <= 100:
    print(number)
    number += 1

1.3.2 for循环

语法

for 变量名 in range(n):    循环体

range()是什么?

语法:

range(start,stop,[,step])

start指的是计数的起始值,默认是0

stop指的是计数结束值

step是步长,默认是1,不可以为0

range()方法生成一段左闭右开的整数范围

注意点: - 它表示的是左闭右开区间: - 它接收的参数必须是整数,可以是负数,但是不能是浮点数等其他的类型; - 它是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但是不能修改元素; - 它是可迭代对象,但不是迭代器

- 1-100的数
for i in range(1,101):
    print(i)


# 打印1-100中的所有偶数
for i in range(0,101,2):
    print(i)

#模拟登陆,最多登录五次
username = 'root'
password = '123456'
max = 5  #设置最多错误的次数
for i in range(max):
    u = input("请输入账号:")
    p = input("请输入密码:")
    if u == username and p ==password:
        print("登录成功")
    else:
        print("密码错误,请重新输入")

1.3.3 break作用是退出循环(退出整个循环)

username = 'root'
password = '123456'
max = 5  #设置最多错误的次数
for i in range(max):
    u = input("请输入账号:")
    p = input("请输入密码:")
    if u == username and p ==password:
        print("登录成功")
        break
    else:
        print("密码错误,请重新输入")


for i in range(1,11):
    u  = input("请输入账号:")
    p = input("请输入密码:")

    if i == 6:
        print("账号冻结")
        break
    if u == 'root' and p =='123456':
        print("登录成功")
        break
    else:
        print("密码错误,重新输入")

1.3.4 continue(退出本次循环,继续执行下一次循环)

小明吃苹果,一共十个

  1. 吃到第三个的时候饱了,不想吃了,吃苹果的循环就可以停止了,这就是break,也就是终止整个循环
  2. 如果是吃的过程中,小明吃到第三个的时候迟到了一条虫子,苹果不能吃了,直接扔掉,然后继续吃下一个苹果,这就是continue
# 情况一
for i in range(1,11):
    if i == 3:
        print("吃饱了")
        break
    print("正在吃第"+str(i)+"个苹果")

# 情况二
for i in range(1,11):
    if i == 3:
        print("吃出虫子了")
        continue
    print("正在吃第"+str(i)+"个苹果")

1.3.5 循环嵌套

for i in range(2):
    for j in range(5):
        print("hello world")

# 外层循环执行2次
# 内层循环执行5次
"""
打印一栋楼的所有的房间号,假设这栋楼有5层,每层楼有9个房间
我们要怎么样去输出他们的的房间号?

"""

# for i in range(1,6):
#     for j in range(1,10):
#         print(str(i)+"0"+str(j)+"号")


# while
i = 1
while i <6:
    j = 1
    while j < 10:
        print(str(i)+"0"+str(j)+"号")
        j += 1
    i +=1

# for 可以和 while交互嵌套
i = 1
while i < 6:
    for j in range(1,10):
        print(str(i) + "0" + str(j) + "号")
    i += 1

本期就讲解这么多啦,下期见!