内容正文:
筐鱼梧领凤峡匪跑脚凡辅乒踪勿久褂舟婴袭剪肚爹伦甄啸镣娟附卉态再骂广东农工商职业技术学院PPT模板-精美原创毕业论文答辩广东农工商职业技术学院PPT模板-精美原创毕业论文答辩
项目3 条件与循环
目录 | CONTENT
1
项目介绍
2
项目目标
3
项目准备
4
项目实施
项目介绍
项目背景
程序设计中有三种基本控制结构:顺序、条件、循环。用它们可以组合成任何程序。1966年,Bohm与Jacopini证明了任何单入口单出口的没有“死循环”的程序都能由三种最基本的控制结构构造出来。这三种基本控制结构就是顺序结构、IF—THEN—ELSE选择结构、DO_WHILE重复结构或DO UNTIL重复结构。顺序结构是按照指令的顺序依次执行代码,而条件和循环结构则需要相应的控制语句。在Python中,用if语句实现条件选择结构,用for和while实现循环结构。
项目介绍
项目规划
01
了解Python语言的程序结构和控制方法
02
掌握Python语言中条件和分支控制语句的使用
目录 | CONTENT
1
项目介绍
2
项目目标
3
项目准备
4
项目实施
项目目标
知识目标
1
熟悉Python语言程序结构的基本概念
2
掌握Python语言的分支语句、循环语句基本概念
3
掌握break和continue语句的概念
项目目标
能力目标
1
掌握Python语言程序控制结构语句的使用方法
2
能针对具体案例编写简单的控制程序,并合理设计程序的测试数据。能预判循环的执行次数
3
熟悉典型问题的解决方法
目录 | CONTENT
1
项目介绍
2
项目目标
3
项目准备
4
项目实施
项目准备
1. 条件结构
1)单分支
if语句由四部分组成:关键字if、条件表达式、冒号、表达式结果为真(包括非零、非空)时要执行的语句体
if 条件表达式:
语句体
项目准备
1. 条件结构
2)双分支
单分支只能处理条件满足的情况。很多场景中当条件不满足时也要处理。Python提供了双分支语句 if-else
if 条件表达式:
语句体1
else:
语句体2
项目准备
1. 条件结构
3)多分支
在实际评价程序时,会分为优良中差四个等级,因此,需要更多的分支来实现成绩评价。Python提供了多分支语句if-elif-else
if 条件表达式1:
语句体1
elif 条件表达式2:
语句体2
……
elif 条件表达式n-1:
语句体n-1
else:
语句体n
项目准备
1. 条件结构
4)嵌套分支
外层条件满足,才能去判断内层条件。Python中通过if嵌套可以实现程序中条件语句的嵌套逻辑
if 判断条件1: # 外层条件
语句块1
if 判断条件2: # 内层条件
语句块2
……
项目准备
1. 条件结构
5)分支结构的三元运算
为了使if语句的表达变得简洁,对于简单的if-else 结构,可以使用三元运算表达式实现。
三元表达式:变量 = 值1 if 条件表达式 else 值2。
如果条件表达式成立,变量取“值1”,否则变量取“值2”。
x = 5
if x > 0:
y = 1
else:
y = 0
x = 5
y = 1 if x>0 else 0
项目准备
2. 循环结构
1)while语句
简单的while语句结构如下,由关键字while、条件表达式、冒号、循环体构成
while 条件表达式:
循环体
项目准备
2. 循环结构
2) for语句
for语句通过遍历一个序列(字符串、列表、元组)或迭代器等可迭代对象中的每个元素来建立循环
for 变量 in 序列或迭代器等可迭代对象:
循环体
项目准备
2. 循环结构
3) break和continue语句
break语句可以用在while和for循环中。在循环进行过程中,如果某个条件被满足(一般通过if语句判断是否满足执行break语句的条件),则可以通过break语句立即终止本层循环。如果break语句在具有两层循环嵌套的内层循环中,则只终止内层循环,进入到外层循环的下一条语句继续执行。
continue语句可以用在while和for循环中。在循环体执行过程中,如果遇到continue语句,程序会跳过本次循环的循环体剩余语句,回到循环开始的地方重新判断是否进入下一次循环。
项目准备
2. 循环结构
4) 带else的循环语句
Python中的while和for语句后面还可以带有else语句块
While 条件表达式:
循环体
else:
else语句块
项目准备
2. 循环结构
5) 循环的嵌套
循环的嵌套是指在一个循环中又包含另外一个完整的循环,即循环体中又包含循环语句。循环嵌套的执行的过程:先进入外层循环第1轮,然后执行完所有内层循环,接着进入外层循环第2轮,然后再次执行完内层循环,…,直到外层循环执行完毕。
目录 | CONTENT
1
项目介绍
2
项目目标
3
项目准备
4
项目实施
项目实施
任务3.1 打印奇数
编写程序接收一个整数,并在控制台打印0到该整数之间的所有奇数(包含负数且只使用一个for循环)。
项目实施
任务3.1 打印奇数
建立 “打印奇数.py”文件,用于编写Python实验程序。
编写任务代码。
# 接收一个控制台输入的数据,并将该数据转换为整型
number = int(input('Enter a number:'))
# 编写一个for循环,使用range函数根据输入的数据创建循环区间
for i in range(number) if number > 0 else range(number, 0):
# 在for循环中输入如下代码,将区间内能够被2整除的数据过滤
if (i%2 == 0):
pass
else:
print(i)
项目实施
任务3.1 打印奇数
执行程序。
①用鼠标右键单击右侧编辑窗口,在菜单中选择“Run ‘python主程序所在文件名’”选项,执行编写好的Python程序,本次实验文件名为“打印奇数”
②在IDE下方控制台将打印数据输入提示,在提示光标处输入数字9,并按下回车,程序将输出0-9之间的全部奇数
项目实施
任务3.2 求1-100的素数
素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。通过寻找不大于n的素数,我们可以练习Python语法中的循环等功能。
项目实施
任务3.2 求1-100的素数
建立 “求1-100的素数.py”文件,用于编写Python实验程序
编写任务代码
# 定义一个空的列表,用于存储素数
list = []
# 创建一个for循环,遍历2-100这个区间
for i in range(2, 100):
# 定义一个变量j,初始值为2,用来存储除数
j = 2
#创建一个for循环,用来遍历2到i之间的除数,并依次用j保存。在循环中计算i与j取余的结果,如果结果为0,表示2到i之间存在数j能够整除i,则i为非素数,否则i为素数。最后将判断为素数的值追加至素数列表之中。
for j in range(2, i):
if i % j == 0:
break
else:
list.append(i)
print(list)
项目实施
任务3.1 打印奇数
执行程序。
①用鼠标右键单击右侧编辑窗口,在菜单中选择“Run ‘python主程序所在文件名’”一项执行编写好的Python程序,本次实验文件名为“打印1-100之间的素数”
②在IDE下方控制台查看输出结果
项目实施
任务3.3 打印宽高均为9的实心菱形和空心菱形
计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。在Python程序中,用if语句实现条件判断。为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。更多的情况下,为了完成某项任务,需要把条件判断和循环结合起来。本任务使用Python分别打印宽高均为9的实心菱形。
项目实施
任务3.3 打印宽高均为9的实心菱形和空心菱形
建立 “打印宽高为9的实心菱形.py”文件,用于编写Python实验程序
编写任务代码
offset = 1 # 定义一个偏移变量,用来控制*的递增与递减
star = 1 # 定义一个变量,用来保存当前行需要打印的*的个数
max = 9 # 定义一个变量,用来保存菱形的最大宽高
whitespace = int(max / 2) # 定义一个变量,用来保存每行第一颗*左侧空格的数量
flag = True # 定义一个变量,用来控制程序是否打印完成并退出
end = ' ' # 定义一个变量,用来设置print函数end参数的值
# 定义一个while循环,由于flag的初始值为True,则该循环为死循环
while(flag):
# 定义一个for循环,用于打印当前行第一颗*左侧的空格
for i in range(whitespace):
print(' ', end=end)
# 定义一个for循环,用于打印当前行的*
for i in range(star):
print('*', end=end)
print() # 打印一个换行,即切换至下一行进行打印
# 判断当前行打印*的数量是否为9,若为9则将偏移量变量*-1,即将*的数量由递增变为递减
if star == 9:
offset = -1 * offset
whitespace -= offset # 用于改变下一行输出的空格的数量
star += offset * 2 # 用于改变下一行输出的星的数量
# 判断当下一行输出的星的数量小于0时,表示菱形已经打印完毕,改变程序开关变量的值为False使得while循环可以结束
if star < 0:
flag = False
项目实施
任务3.3 打印宽高均为9的实心菱形和空心菱形
执行程序。
①用鼠标右键单击右侧编辑窗口,在菜单中选择“Run ‘python主程序所在文件名’”一项执行编写好的Python程序,本次实验文件名为“打印宽高均为9的实心菱形”。
②在IDE下方控制台查看输出结果
项目实施
任务3.3 打印宽高均为9的实心菱形和空心菱形
建立 “打印宽高为9的空心菱形.py”文件,用于编写Python实验程序
编写任务代码
offset = 1 # 定义一个偏移变量,用来控制*的递增与递减
star = 1 # 定义一个变量,用来保存当前行需要打印的*的个数
max = 9 # 定义一个变量,用来保存菱形的最大宽高
whitespace = int(max / 2) # 定义一个变量,用来保存每行第一颗*左侧空格的数量
flag = True # 定义一个变量,用来控制程序是否打印完成并退出
end = '' # 定义一个变量,用来设置print函数end参数的值
# 定义一个while循环,由于flag的初始值为True,则该循环为死循环
while(flag):
# 定义一个for循环,用于打印当前行第一颗*左侧的空格
for i in range(whitespace):
print(' ', end=end)
# 在while循环中输入如下代码,定义一个for循环,用于打印当前行的*,在for循环中判断当前要打印的*是否为当前行第一颗或最后一颗,如果为第一颗或最后一颗则打印*,否则打印空格,以此实现空心
for i in range(star):
if (i==0 or i==star-1):
print('*', end=end)
else:
print(' ', end=end)
# 在while循环中输入如下代码
print() # 打印一个换行,即切换至下一行进行打印
# 在while循环中输入如下代码
# 判断当前行打印*的数量是否为9,若为9则将偏移量变量*-1,即将*的数量由递增变为递减
if star == 9:
offset = -1 * offset
# 在while循环中输入如下代码
whitespace -= offset # 用于改变下一行输出的空格的数量
# 在while循环中输入如下代码
star += offset * 2 # 用于改变下一行输出的星的数量
# 在while循环中输入如下代码,判断当下一行输出的星的数量小于0时,表示菱形已经打印完毕,改变程序开关变量的值为False使得while循环可以结束
if star < 0:
flag = False
项目实施
任务3.3 打印宽高均为9的实心菱形和空心菱形
执行程序。
①用鼠标右键单击右侧编辑窗口,在菜单中选择“Run ‘python主程序所在文件名’”选项执行编写好的Python程序,本次实验文件名为“打印宽高均为9的空心菱形”。
②在IDE下方控制台查看输出结果
项目实施
任务3.4 冒泡排序降序
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样。
项目实施
任务3.4 冒泡排序降序
建立 “冒泡排序降序.py”文件,用于编写Python实验程序
编写任务代码
numberList = [5, 3, 1, 7, 9, 2, 8, 1, 4, 7, 3] # 定义一个数字列表
for i in range(len(numberList) - 1): # 定义一个循环用于实现数字列表长度减一次匹配
# 在for循环中输入如下代码
for j in range(len(numberList) - i - 1): # 嵌套一层循环用于遍历匹配项的索引
# 在里层for循环中输入如下代码
# 将两个相邻元素进行比较,如前一元素小于后一元素,则将两个元素位置对调
if numberList[j] < numberList[j+1]:
numberList[j], numberList[j+1] = numberList[j+1], numberList[j]
print(numberList) # 输入如下代码,使用print函数打印完成排序的结果列表
项目实施
任务3.4 冒泡排序降序
执行程序。
①用鼠标右键单击右侧编辑窗口,在菜单中选择“Run ‘python主程序所在文件名’”选项执行Python程序,本次实验文件名为“冒泡排序降序”
②在IDE下方控制台查看输出结果
课后练习与技能训练
一、填空题
练习
1. 通过设置 ,可以使得某些语句在条件满足时才会执行。
2. 通过 ,可以使得某些语句重复执行多次。
课后练习与技能训练
一、填空题
练习
3. 下面程序段循环次数: ,循环结束后i的值是 。
i=10
while i>=0:
i-=1
print(i)
课后练习与技能训练
一、填空题
练习
4. 已知程序段:
若输入77,则输出结果为: 。
score=eval(input('请输入成绩(0~100之间的整数):'))
if score<60:
print('不及格')
elif score<70:
print('及格')
elif score<80:
print('中等')
elif score<90:
print('良好')
elif score<=100:
print('优秀')
课后练习与技能训练
一、填空题
练习
5. 已知程序段的功能是:用户输入数字n,利用for循环求n!。请将程序填写完整。
n=eval(input('请输入一个大于0的整数:'))
s=
for i in range(1, ):
s=
print(s)
课后练习与技能训练
一、填空题
练习
6. 下面程序的功能是求100以内能被7整除的最大整数,请将程序填写完整。
n=100
while
if n%7==0:
print(n)
n-=1
课后练习与技能训练
一、填空题
练习
断素数的程序,请将程序填写完整。
for n in (2,101):
m=int(n**0.5)
i=2
while
if n%i==0:
i+=1
if i>m:
print(n,end=' ')
课后练习与技能训练
二、选择题
练习
1. 已知程序段:
score=eval(input('请输入成绩(0~100之间的整数):'))
if score<60:
print('你的成绩是%d'%score)
print('不及格')
若输入55,则输出结果是()
你的成绩是55
不及格
你的成绩是55
不及格
无输出
课后练习与技能训练
二、选择题
练习
2. 已知程序段:
score=eval(input('请输入成绩(0~100之间的整数):'))
if score>=60:
pass
else:
print('不及格')
若输入55,则输出结果为()
A.无输出
B.不及格
C.pass
D.程序报错
课后练习与技能训练
二、选择题
练习
3. 已知程序段:
n=eval(input('请输入一个整数:'))
if n%2==0:
print("偶数")
else:
print("奇数")
若输入-5,则输出结果是()
无输出
奇数
偶数
偶数
奇数
课后练习与技能训练
二、选择题
练习
4. 已知语句段:
d={'Python':1,'C++':2,'Java':3}
for k in d:
print('%s:%d'%(k,d[k]))
输出结果是()
A.Python
C++
Java
B.1:Python
2:C++
3:Java
C.Python:1
C++:2
Java:3
D.以上都不对
课后练习与技能训练
三、简答题
练习
1. 水仙花数是三位整数(100~999),它的各位数字立方和等于该数本身。下面程序求水仙花数,请写出程序运行结果。
for n in range(100,1000):
bai=n//100
shi=n//10%10
ge=n%10
if bai**3+shi**3+ge**3==n:
print(n)
课后练习与技能训练
三、简答题
练习
2. 下面程序输出九九乘法表,请将程序补充完整。
for i in range(1,10):
for j in range(1, ):
print(j,"*",i,"=",i*j,end=' ')
print( )
$$