必修1专题四Python程序实现 课件(共40张PPT)2026年浙江省高考选考信息技术总复习

资源下载
  1. 二一教育资源

必修1专题四Python程序实现 课件(共40张PPT)2026年浙江省高考选考信息技术总复习

资源简介

(共40张PPT)
专题四 Python程序
实现
思维导图
归纳提炼
一、Python常见内建函数
函数 描述 示例
print(x) 输出x的值 print("Python")→输出内容为Python
input([prompt]) 获取用户输入 x=input(),执行时输入1,则x="1"
int(object) 将字符串和数字转换成整型 int(6.8),返回结果为6
float(object) 将字符串和数字转换成实型 float(1),返回结果为1.0
abs(x) 返回x的绝对值 abs(-6),返回结果为6
len(seq) 返回序列的长度 len('hello'),返回值为5
str(x) 将x转换成字符串 str(18),返回结果为"18"
chr(x) 返回x对应的字符 chr(65),返回结果为"A"
ord(x) 返回x对应的ASCII值 ord("a"),返回结果为97
round(x[,n]) 对x进行四舍五入并保留n位小数(省略n则默认为0,如果给定n,就将数x转换为小数点后有n位的数,若n大于实际小数位数,则保留实际位数) round(6.248),返回结果为6
round(6.248,2),返回结果为6.25
max(s[,args...]) 返回序列的最大值 a=[4,2,8,9,1,7]
max(a),返回结果为9
min(s[,args...]) 返回序列的最小值 a=[4,2,8,9,1,7]
min(a),返回结果为1
二、顺序结构
1.顺序结构是通过赋值语句来实现的。
2.注释语句。注释语句是以“#”开头的语句,注释语句的作用是对程序代码进行解释说明,以增强程序的可读性,注释语句对程序的执行没有任何影响。
三、分支结构
1.if语句
形式一:
if<条件>:
  <语句块>
含义:当条件为真时,执行语句块中的语句,否则不执行。
形式二:
if<条件>:
  <语句块1>
else:
  <语句块2>
含义:当条件为真时,执行语句块1中的语句,否则执行语句块2中的语句。
说明:
(1)语句块是一行或放在一起多行的语句,一般通过行缩进来标识。
(2)同一个if语句中,if,else下方的语句块必须采用相同的缩进。
2.if-elif语句
格式:
if <条件1>:
   <语句块1>
elif<条件2>:
   <语句块2>
……
elif<条件N>:
   <语句块N>
else:
   <语句块N+1>
【总结提炼】
①一个if语句可以包含多个elif子句,最后一个else子句是可选的。
②elif子句仅当其if语句中的条件为假时才执行。
③如果if语句和elif子句中的条件都不为真时,末尾的else子句的语句块就会被执行。
四、循环结构
1.for循环及程序实现
(1)for语句格式
for <变量> in <序列>:
<循环体>
[else:
<语句块>]
[温馨提示] 循环体中的语句要向右缩进,且缩进量要一致。
(2)for语句的功能
将序列对象中的元素逐个赋给目标变量,对每一次赋值都执行一遍循环体
语句块。当序列中的元素全部遍历完时,结束循环,接着执行循环体后面的语句。
【总结提炼】
①for语句通过次数控制循环的执行过程。
②通过遍历任意序列的元素来建立循环结构,针对序列的每一个元素执行一次循环体。列表、字符串、元组都是序列,可以利用它们来建立循环。
(3)for循环的使用
x=[1,2,3,4] s1=0 for i in x: s1=s1+i print(s1) 输出结果:10 y="1234" s2="" for i in y: s2=i+s2 print(s2) 输出结果:4321 s3=0
for i in range(5) :
s3=s3+i
print(s3)
输出结果:10
遍历列表对象 遍历字符串对象 遍历range对象
2.break语句和continue语句
(1)break和continue语句的作用是改变控制流程。
(2)当break语句在循环结构中执行时,它会立即跳出循环结构,转而执行循环结构后面的语句;当continue语句在循环结构中执行时,并不会退出循环结构,而是立即结束本次循环,重新进入下一轮循环,即跳过循环体中在continue语句之后的所有语句,继续下一轮循环。
3.while循环及程序实现
(1)while语句格式
while <条件>:
<循环体>
(2)while语句的执行
while循环在执行时,首先会判断条件是否为真,如果条件为真,执行一次循环体,再次判断条件是否为真,如果仍为真,那么再执行一次循环体,以此类推,直到条件为假时退出while语句。
(3)while循环的适用场合
在解决一个问题时,预先不知道需要执行的次数,只知道约束条件,此时可用while语句来实现。
【总结提炼】
①while循环也称为万能循环,凡是能用for循环实现的,都可用while循环实现,反之不一定。
②在while循环前应对变量赋初值,而循环变量的变化要在循环体内通过赋值语句来实现。
典型例题
[例1] 有如下程序段:
a="3721"
b="520"
if a+b>b+a:
c=a+b
else:
c=b+a
程序段执行后,变量c的值为(   )
A."3721" B."520" C."3721520" D."5203721"
D
解析:本题主要考查的是字符串比较及分支结构。字符串比较的规则是按位比较每个字符的ASCII值,字符串"5203721"大于字符串"3721520",因此c的值为"5203721",故答案为D。
[例2] 有如下Python程序段:
a=[80,75,-1,-1,90,100,65,-1,95,98,-1,85]
n=len(a)
ans=0
cnt=0
for i in a:
if i==-1:
continue
ans+=i
cnt+=1
print(ans/cnt)
该程序段执行后,输出的结果为(   )
A.57 B.57.0 C.86 D.86.0
D
解析:本题的功能是求列表a中除元素值为-1外的其他元素值的平均值。i为列表中的元素,ans为列表a中非-1的元素之和,cnt为非-1的元素个数,需注意的是"/"运算的结果为实数型,因此可计算得到ans/cnt的值为86.0,故答案为D。
[例3] 有如下Python程序段:
import random
a=[ ]
for i in range(0,6):
a.append(random.randint(1,10))
for i in range(1,6):
if i%2==1 and a[i]%2==0:
  a[i]=a[i]+a[i-1]
elif i%2==0 and a[i]%2==1:
  a[i]=a[i]-a[i-1]
该程序段执行后,列表元素a[0]~a[5]的值不可能的是(   )
A.[10,18,-9,3,8,14] B.[2,10,-1,9,10,20]
C.[1,5,10,14,6,12] D.[7,8,2,5,4,12]
D
解析:本题程序的功能是:首先生成6个[1,10]区间内的随机整数存放在列表a中,然后将奇数位置上的偶数修改为它与前一个整数之和,将偶数位置上的奇数修改为它与前一个整数的差,D选项中的第2个元素(8)不可能是偶数,因此答案为D。
[例4] 有如下Python程序段:
import random
s=input("请输入字符串:")
x=random.randint(3,6)
n=len(s)
if len(s[0:x])  r=s[x:n]+s[0:x]
else:
 r=s[0:x]+s[x:n]
print(r)
执行该程序段,若输入“helloworld”(不包含双引号),则输出的结果不可能的是(   )
A.loworldhel B.oworldhell C.helloworld D.worldhello
D
解析:随机整数x的范围为[3,6],字符串x的内容为“helloworld”,因此字符串的长度n=10,下面分情况讨论,其中当x=5时,因为len(s[0:x])与len(s[x:n])相等,因此r就是字符串s的内容,即D选项不可能,故答案为D。
[例5] 有如下Python程序段:
a=[6,5,1,4,8,7]
m,s=0,0
n=len(a)
for i in range(n):
if a[i]>m:
m=a[i]
s=s+m
print(s)
该程序段执行后,输出的结果为      。
40
解析:本题的功能是将列表a中的每一个元素与m比较,m保存的是a[i]的较大值,并将m累加到s中,即s=6+6+6+6+8+8=40,因此最后输出的结果为40。
[例6] 有如下Python程序段:
a=[2,3,5,1,7,0,3,6]
c=0
n=len(a)
for i in range(1,n):
if a[i]>a[i-1]:
a[i],a[i-1]=a[i-1],a[i]
c+=1
print(c,a)
该程序段执行后,变量c的值为    ,
列表a中的元素依次为           。
5
[3,5,2,7,1,3,6,0]或3,5,2,7,1,3,6,0
解析:本程序的功能是将前面的小数移动到后面,并统计移动过程中数据交换的次数。2分别与3、5交换,1与7交换,0与3和6交换,因此共交换5次,最后列表a中的元素为[3,5,2,7,1,3,6,0]。
[例7] 角谷猜想是:对于任意大于1的自然数n,若n为奇数,则将n变为3*n+1,否则将n变为n的一半。经过若干次这样的变换,一定会使n变为1。下列程序的功能是用Python程序验证角谷猜想,请在程序划线处填入合适的语句。
n=int(input("请输入一个大于1的整数:"))
c=0
while n>1:
   ①  
  if n%2==0:
    n∥=2
  else:
   ②  
  print(n)
print("变换次数:",c)
程序划线①处应填入的代码为:         ;
程序划线②处应填入的代码为:         。
c+=1或c=c+1
n=3*n+1
解析:本题主要考查while循环。①处记录变换次数,因此答案为c+=1或c=c+1,②处当n为奇数的情况,因此②处语句为n=3*n+1。
[例8] 编写程序,实现如下功能:输入正整数n,求出具有n个不同因子的最小正整数m(m≤50 000)。
例如:输入n=4,因为6有4个不同的整数因子1,2,3,6,而且6是具有4个不同因子的最小整数,因此,m=6。
程序运行时,输入一个正整数n,则输出满足条件的正整数m。程序运行界面及效果如下图所示。
实现上述功能的程序如下,请在程序划线处填入合适的代码。
from math import sqrt
def sumx(k):
s=0
for i in range(1,int(sqrt(k))+1):
if k % i==0:
  s=s+2
if k==i*i:
   ①  
return s
n=int(input("请输入n:"))
for m in range(1,50001):
if   ②   :
  print(m)
     ③  
程序划线①处应填入的代码为:           ;
程序划线②处应填入的代码为:           ;
程序划线③处应填入的代码为:           。
s=s-1或s-=1
sumx(m)==n
break
解析:本题主要考查的是自定义函数及简单算法的处理。表达式“if k==i*i:”表示k是完全平方数,即有两个相同的因子,前面先加了因子数2个,因此需减掉1个,因此①处语句为s=s-1或s-=1;根据if②处下面的语句可知,当前因子数为n时的情况,因此②处语句为sumx(m)==n,此时算法结束,因此③处语句为break,退出循环。
感谢观看

展开更多......

收起↑

资源预览