python笔记_程序流程控制

A,顺序控制

程序从上到下逐行执行

python定义变量时,会合法地向前引用

age = 1

age2 = age +1
age2 = age +1

age = 1 ------>错误,age应在age2之前


B,分支控制

1,单分支if

语法

if 条件表达式 :

代码块

说明:

a, 表达式为True,执行代码块;表达式为False,不执行

b, python缩进,可以界定代码块

例

if 3>2

print("yes")

print("ready")

if 4>5

print("haha")

------>

yes

ready

2,双分支if else

if 条件表达式 :

代码块1

else:

代码块2

例

name = Tom

if name == "Tom":

print("Tom是一只猫咪")

else:

print("这只猫咪不是Tom")

3,多分支

语法

if 条件表达式 :

代码块1

elif 条件表达式2 :

代码块2

......

else:

代码块n

流程

例

id>=70,是老员工;id>=60,是普通员工;id>=50,是实习生,其他都是临时工

要求:从键盘输入id=55,判断员工种类

id = int(input("请输入员工id "))

if id>=70:

print("是老员工")

elif id<=70 and id>=60:

print("是普通员工")

elif id<=60 and id>=50:

print("是实习生")

else:

print("是临时工")

4,嵌套分支

语法

if:

if:

说明:

**a,**在一个分支结构中又嵌套了一个分支结构

**b,**内层分支,外层分支

**c,**嵌套不超过三层(可读性)

例

精灵age>2000则长寿,否则不长寿,将长寿精灵分为木精灵和卓尔

要求:输入age和种类,输出结果

age = int(print("请输入年龄:"))

if age>2000:

print("长寿")

spirit = print("请输入种类:")

if spirit == "木精灵" :

print("木精灵")

else:

print("卓尔")

else:

print("不长寿")


练习(单分支,双分支)

**a,**定义两个变量,判断和是否大于60,如果大于60,输出"普通成功",否则"鉴定失败"

num = 40

num2 = 50

if num+num2 >60:

print("普通成功")

else:

print("鉴定失败")

**b,**定义两个float,第一个float大于5,且第二个float大于10,输出两数之和

num = 6.5

num2 = 15.3

if num>5 and num2>10:

print(f"{num}+{num2}=")

**c,**定义两个int,判断两者的和,是否能被3且5整除,若可以被整除,输出"yes"

num = 50

num2 = 100

if (num+num2) %3 == 0 and (num+num2) %5 == 0:

print("yes")


C,循环控制

1,for循环

**功能:**让代码循环运行

语法:

for <变量> in <范围、序列>:

<循环操作语句>

例

nums = (1,2,3,4) <class 'list'>

for i in nums:

print("第",i,"名")

------>

第1名

第2名

第3名

第4名

说明:

1,for,in是关键字

2,<范围、序列>可以理解为要处理的数据集,必须是可迭代对象(字符串,列表等)

3,<循环操作语句>可以有多条

4,python的for循环是轮询机制(一个一个问过去)

5,可以和else配合使用

for <变量> in <范围、序列>:

<循环操作语句>

else:

<循环操作语句>

流程图

tips:遍历数字序列,可以使用内置range()函数,生成数列,且数列前闭后开

range()函数

1,range()是一个不可变的序列类型

2,默认step=1,start=0

3,list()函数可以查看range()生成的序列包含的数据

4,生成的数列前闭后开

语法

range(start,stop,step=1):

range(起点,终点,每次增加的数)

例

要求:生成(1,2,3,4,5)

r = range(1,6,1)

print(list(r))

------>

(1,2,3,4,5)

练习(for)

1,生成(0,1,2,3,4,5)

range(6):

print(list(range))

2,用for range输出10次hello world

for a range(10):

print("hello world")


2,while循环

功能: 在表达式为真的前提下,重复地执行

语法

while <判断条件>:

<循环操作语句>

说明:

1,while是关键字

2,条件为True,执行<循环操作语句>;条件为False,退出while

3, <循环操作语句>可以有多条

例

age = 1

while age < 4:

print("Tom还不到4岁",age)

age += 1age会不断+1

------>

Tom还不到4岁 1

Tom还不到4岁 2

Tom还不到4岁 3

流程图

4,while可以和else一起使用

while <判断条件>

<循环操作语句>

else

<其他语句>在while else判断条件为False时,会执行else的语句块
age = 1

while age < 4:

print("Tom还不到4岁",age)

age += 1age会不断+1

else

print("Tom是只大猫咪")

------>

Tom还不到4岁 1

Tom还不到4岁 2

Tom还不到4岁 3

Tom是只大猫咪


练习(while)

1,输出,1-100中所有能被3整除的数

a = 1

while a <= 100:

if a%3 = 0

print(a)

a += 1

2,输出,40-100中所有偶数

a = 40

while a <=100:

if a%2 = 0:

print(a)

a +=1

3,键盘输入name,输入exit时结束

name = input("请输入名字:")

while name != "exit":

**#**name = input("请输入名字:")也可以写在这边

print("name")

4,输出,1-100中所有能被9整除的数,并统计个数,算出总和

a = 1

count = 0

sum = 0

while a <= 100:

if a%9 == 0:

print(a)

count += a

sum += a

a += 1

print(f"count={count} sum={sum}")


3,多重循环

**功能:**将 一个循环放在另一个循环里(for,while)

说明

1,嵌套循环就是把内层循环当成外层循环的循环体

2,循环尽量不超过三个(可读性)

3,如果外层循环是m次,内层循环是n次,一共需要循环m*n次

例

使用for输出五层的空心金字塔

输出*****

for a in range(1,6):a控制每层输出的*的个数

print("*",end ="")使用end ="",让输出结果不换行

输出由*组成的矩形

for b in range(1,6):b控制输出层数

for a in range(1,6):

print("*",end ="")

print("")print("")每层输出后换行

输出直角三角形

for b in range(1,6):

for a in range(b ):每层输出的*的个数=(1,b+1)= b

print("*",end ="")

print("")

输出金字塔

for b in range(1,6):

for c in range(5-b ):c控制空格数,每层的空格数=5-b

print(" ",end ="")

for a in range(2*b-1 ):每层*的个数=2*b-1

print("*",end ="")

print("")

输出空心金字塔

每层的两边输出*,最后一层输出*

for b in range(1,6):

for c in range(5-b):

print(" ",end ="")

for a in range(2*b-1):

if a == 0 or a == 2*b-1-1 or a = 5:金字塔的两边(左边和右边的*),最后一层

print("*",end ="")

else:

print(" ",end ="")金字塔中间的空格

print("")

输出层数可随意改变的空心金字塔

使用total_level(总层数)

for b in range(1,total_level):

for c in range(total_level-b):

print(" ",end ="")

for a in range(2*b-1):

if a == 0 or a == 2*b-1-1 or a = total_level:

print("*",end ="")

else:

print(" ",end ="")

print("")

练习

统计三个班的成绩,每班有五个学生

1,求各个班的平均分和总分,从键盘输入学生成绩

sum = 0.0

for a range(6):

score = float(input("请输入成绩:"))

sum += score 累加到sum

print("班级的情况:平均分 {sum/5}")

2,求三个班级及格人数的总和

相关推荐
Li_RuiQi12 小时前
DAgger方法演进_独立学习笔记
笔记·学习·计算机视觉
Li_RuiQi16 小时前
DAgger与交互式模仿学习_ACT学习笔记
笔记·学习
He BianGu17 小时前
【笔记】C# 中BindingFlags的详细作用
笔记·c#
AI视觉网奇17 小时前
turtle 入门教程笔记
笔记
跨知易知识产权17 小时前
美国专利确权是什么,和专利诉讼有什么不一样?
笔记
杨逢昌工厂6S管理17 小时前
126-杨逢昌6S三环体系:越做越乱的现场熵增机理与基准化治理——一线现场诊断笔记
经验分享·笔记·职场和发展·学习方法
悟道书生17 小时前
若依 RBAC 权限控制学习笔记
java·网络·笔记·sql·学习·vue
陈哈哈111118 小时前
折腾了半天,总算把 Vim 9.2 装明白了
笔记
陈哈哈111118 小时前
折腾了半天,总算把 OpenGL 的开发环境给装明白了
笔记
深圳老胡19 小时前
STM32F103 硬件 SPI 与软件 IO 模拟 SPI 最高速度差异详解
笔记·stm32·单片机·代码规范·1024程序员节