内容正文:
3.2 Python 语言程序设计
必修一《数据与计算》
第三章 算法的程序实现
镇雄长风中学 杨鹏
3.2.1 Python语言基础--数据类型与表达式
复习:算法三要素
复习
算法
三要素
数据类型
int(整型)
Bool(布尔型)
str(字符串型)
list(列表)
tuple(元组)
set(集合)
dict(字典)
float(实型)
ture
false
99
99.99
“Python”
[‘Python’,“编程”]
{ “编程”: ‘Python’,}
(0,1,2,3)
{10,20,30}
算法
数据
控制
转移
复习:Python基本数据类型
必修一:数据与计算
Python算术运算符
运算符 表达式 描述 示例 优先级
** x**y 求x的y次幂 5**2结果为25 1
* x*y 将x与y相乘 5*2结果为10 2
/ x/y 用x除以y,产生的实数 5/2结果为2.5 2
// x//y 用x除以y,取整数部分 5//2结果为2 2
% x%y 用x除以y,取余数 5%2结果为1 2
+ x+y 将x与y相加 5+2结果为7 3
- x-y 将x减去y 5-2结果为3 3
复习
算术运算符优先级为是:先算括号,其次,按顺序从1-2-3。
必修一:数据与计算
练一练
1、小明要把x个苹果分给n个同学,最后剩下y个。以下Ptython表达式正确的是( )
A. y=x//n
B. y=x%n
C. x=y+n
D. y=x/n
B
必修一:数据与计算
练一练
2、在Ptython中,print(8+7%2**2)的执行结果是( )
A. 5
B. 1
C. 6
D. 11
D
必修一:数据与计算
练一练
3、在Ptython中,print(int(-14/2**2)的执行结果是( )
A. -3
B. -3.5
C. 3
D. 3.5
A
必修一:数据与计算
练一练
4、‘ab’+‘c’*2 结果是:( )
A. abc2
B. abcc
C. abcabc
D. ababcc
B
解析:1、“+”是 将字符“ab”和‘c’*2连接起来。
2、 ‘c’*2是将字符“c”重复两遍。
必修一:数据与计算
1 n=0
2 for i in range(100,1000) :
3 a=______________________
4 b= i//10%10
5 c= i%10
6 if ____________________________:
7 n=n+1
8 print(“第”,n,“个水仙花数为:”,i)
练一练
5、(9分)所谓水仙花数也叫自幂数或阿姆斯特朗数,是指一个三位正整数,其各位数的三次方之和等于该数本身。例如:153=13+53+33,故153是水仙花数,下面的程序用于输出100到999之间的水仙花数,完成划线处的程序填空。
(1)第3行代码为:_____________________________。
(2)第6行代码为:_____________________________。
(3)该程序运行完毕,if语句执行了______________次。
i//100
i=a**3+b**3+c**3
900
自幂数在不同位数上名称及实例:
三位数水仙花数(如153、370、371、407)
四位称玫瑰花数(如1634,6688,8208,9474)
五位称五角星数(如54748)
六位称六合数(如548834)
七位称北斗七星数(如1741725)
八位称八仙数(如24678050)
九位称九九重阳数(如146511208)
十位称十全十美数(如4679307774)
i//100
i=a**3+b**3+c**3
必修一:数据与计算
千位:x//1000
百位:x//100%10
十位:x//10%10
个位:x%10
1 #计算四位自幂数
2 for I in range(1000,10000) :
3 a=______________________
4 b=______________________
5 c=______________________
6 d=______________________
7 if i==a**4+b**4+c**4+d**4 :
8 print( I )
9 print(a,b,c,d)
练一练
6、(12分)四位阿姆斯特朗数(玫瑰花数),要得到该整数的个位数、十位数、百位数和千位数,采样Ptython编程如下:
(1)第3行代码为:_____________________________。
(2)第4行代码为:_____________________________。
(3)第5行代码为:_____________________________。
(4)第6行代码为:_____________________________。
i//1000
i//100%10
i//10%10
i%10
i//1000
i//100%10
i//10%10
i%10
四位玫瑰花数
1 1634
2 6688
3 8208
4 9474
必修一:数据与计算
运算符 表达式 描述 示例 优先级
> x>y 大于 - 返回x是否大于y 5>2结果为True 1
< x<y 小于 - 返回x是否小于y。 5<2结果为False 1
>= x>=y 大于等于 - 返回x是否大于等于y。 5>=2结果为True 1
<= x<=y 小于等于 - 返回x是否小于等于y。 5<=2结果为False 1
== x==y 等于 - 比较对象是否相等 5==2结果为False 2
!= x!=y 不等于 - 比较两个对象是否不相等 5!=2结果为True 2
Python关系运算符
3.2.1 Python语言基础
必修一:数据与计算
3.2.1 Python语言基础
运算符 描述 实例
in 如果在指定的序列中有找到值返回True,否则返回 False。 x in y,x在y序列中返回 True。
not in 如果在指定的序列中没有找到值返回True,否则返回 False。
x not in y,如果x不在y序列中返回 True
Python的 in 和 not in 运算符允许你快速确定给定值是否是集合的一部分。这种类型的检查在编程中很常见,在Python中通常称为成员测试。因此,这些运算符被称为成员运算符。你需要检查给定值是否是集合的成员,这种检查通常称为成员资格测试。
Python关系运算符
必修一:数据与计算
下列关于Python代码,说法正确的是( )
A. 变量animals的数据类型是字典
B. len( animals)运算结果为2
C. animals的第二个元素为“monkey”
D. 上述Python代码的输出结果为False
D
练一练(2022年秋季学期学业水平考试第 9 题)
1 animals=[‘cat’,’dog’, ‘monkey’]
2 Print(‘rose’ in animals)
[ ]表示列表
值为7
“rose”不在(not
in)列表“animals”中
第二个元素师“dog”
必修一:数据与计算
运算符 表达式 描述 示例
not not x 非 not False 结果为True
and x and y 与 True and False 结果为False
or x or y 或 True or False 结果为True
在数学上,逻辑运算符可以用来表示如下表达式:
①数学表达式:-5<x≤9, 可以用逻辑运算符表示为:x>-5 and x<=9;
②数学表达式:x<-5或者x≥9, 可以用逻辑运算符表示为:x<-5 or x>=9。
Python逻辑运算符
3.2.1 Python语言基础
需要注意的是,and 和 or 运算符都是短路运算符,即如果表达式的结果可以通过某个运算符得出而不需要继续执行后面的运算,则不会执行后续运算符。
逻辑运算符优先级为是:先算括号,其次not,再次and,最后or。
必修一:数据与计算
1、将数学式3<x≤9表示成正确的Python表达式为( )
A. 3<x<=9
B. x>3 and x<=9
C. x>3 and x≤9
D. x>3 or x<=9
B
练一练
必修一:数据与计算
练一练(高中学业水平考试2021年秋季学期试题第6题)
2、【教材108页第5题】民间流传着“韩信点兵”的故事。韩信带1500名士兵打仗,战死四五百人,剩下的士兵排队,站3人一排,多出2人;站5人一排,多出4人;站7人一排,多出6人。韩信马上说出人数:1049人。补充完善下面python程序第三行划线处代码。
A. i%3==2 and i%5==4 and i%7==6
B. i%3==2 or i%5==4 or i%7==6
C. i//3==2 and i//5==4 and i//7==6
D. i//3==2 or i//5==4 or i//7==6
1 #韩信点兵
2 for i in range(1000,1100):
3 if ________________________________________________:
4 print(“剩余士兵数是:”,i)
A
i%3==2 and i%5==4 and i%7==6
必修一:数据与计算
3、判断以下表达式的值为True的是( )。
① 1<=2 and 0 or not 0
② 5 not in [1,2,3,4]
③ not(1==1 and 0!=1)
④ 1 and 5==0
A. ① ③ B. ② ④ C. ③ ④ D. ① ②
Ture
False
Ture
False
练一练
D
必修一:数据与计算
练一练
4、设a=8、b=6、c=5、d=3,表达式
a == c and b != c or c > d的值是( )
A. 1
B. True
C. False
D. 2
B
解析:a == c and b != c or c > d
false
ture
ture
必修一:数据与计算
x y x and y x or y not x
False False
False True
True False
True True
知识补充:
3.2.1 Python语言基础
简单解释就是:
and : x and y结果为ture,表示x和y都必须同时为ture才可以。
or : x or y结果为ture,表示x或y 两者满足其中任意一个为ture,就可以了。
not a : 对于x取反 , x原来是ture,则现在是false; x原来是false ,则现在是ture 。
False
False
False
Ture
Ture
Ture
Ture
False
Ture
Ture
False
False
必修一:数据与计算
3.2.1 Python语言基础
运算符 描述 实例
is 对象 is 是判断两个标识符是不是引用自一个对象 x is y, 类似id(x) == id(y),如果引用的是同一个否则返回结果True,否则返回False。
is not is not是判断两个标识符是不是引用自不同对象。 x is noty,类似id(a) != id(b)。如果引用的不是同一个对象则返回True,否则返回False。
Python身份运算符
必修一:数据与计算
小结
算术运算符
关系运算符
赋值运算符
逻辑运算符
括号的运算级别最高
当一个表达式中出现多个运算符时,Python 会先比较各个运算符的优先级,按照优先级从高到低的顺序依次执行;当遇到优先级相同的运算符时,再根据结合性决定先执行哪个运算符:如果是左结合性就先执行左边的运算符,如果是右结合性就先执行右边的运算符。
运算符优先级规则:算术运算符优先级最高,其次是成员测试运算符、关系运算符、逻辑运算符等,算术运算符遵循“先乘除,后加减”的基本运算原则。
3.2.1 Python语言基础
必修一:数据与计算
设A=2、B=3、C=4、D=5,写出下列布尔表达式的值。
(1)A > B and C <= D or 2 * A > C
(2)3 > 2 * B or A == C and B != C or C > D
(3)not A <= C or 4 * C == B ** 2 and B != A + C
课外作业
必修一:数据与计算
1、(12分)BMI(体重指数)是国际上常用的衡量健康程度的一个重要标准,其计算方法是:体重(单位:kg)除以身高(单位:m)的平方。高一男生BMI数值对应的等级如下表所示,张老师据该表,编写了Python程序实现:输入身高和体重,计算BMI的值并判断BMI等级。
练一练(高中学业水平考试2021年秋季学期第26题)
BMI数值范围 BMI等级
16.4以上23.2以下(包含23.2) 正常
16.4以下(包含16.4) 低体重
23.2以上26.3以下(包含26.3) 超重
26.3以上 肥胖
必修一:数据与计算
程序代码如下所示,请完善程序。
(1)程序第4行下划线初应填入____________________________________________。
(2)程序第7行下划线初应填入____________________________________________。
(3)程序第11行下划线初应填入___________________________________________。
weight/height**2
BMI<=16.4
BMI>23.2 and BMI<=26.3
练一练(高中学业水平考试2021年秋季学期第26题)
1 #计算BMI的值并判断BMI等级
2 weight=float(input(“请输入你的体重(kg):”))
3 height=float(input(“请输入你的身高(m):”))
4 BMI=___________________
5 BMI =round(BMI,1) #BMI变量的数值保留一位小数
6 print (”你的体重指数是”,BMI)
7 if ___________________
8 print (”BMI等级:低体重”)
9 elif bmi<=23.2:
10 print (” BMI等级:正常”)
11 elif ___________________
12 print (” BMI等级:超重”)
13 else:
14 print (” BMI等级:肥胖”)
必修一:数据与计算
2、逻辑表达式的值有两个,Ture和False,当逻辑表达式成立,其值为___________ ;逻辑表达式不成立,其值为____________。以下选项正确的是( )。
A.Ture False
B.Ture Ture
C.False False
D.False Ture
ture
练一练
false
A
必修一:数据与计算
3、下列表达式结果为True的是( )
A. False or True and False
B. False or True
C. True and False
D. False and False
B
练一练
必修一:数据与计算
4、设a=5、b=9、c=3。
表达式 not (a==b and a!=c) or c > d和表达式
b <= c or 5 * a == b ** 2 and b != a + c 的值是( )
A. 0,1
B. 1,False
C. 0,True
D. True,False
D
练一练
必修一:数据与计算
5、下列表达式中,值不是1的是( )
A. 4//3
B. 15%2
C. 3/2
D. 1**2
C
解析:3/2=1.5
练一练
必修一:数据与计算
练一练
5、‘ab’+‘c’*2 结果是:( )
A. abc2
B. abcc
C. abcabc
D. ababcc
B
解析:1、“+”是 将字符“ab”和‘c’*2连接起来。
2、 ‘c’*2是将字符“c”重复两遍。
必修一:数据与计算
6、Python表达式中,可以使用( )控制运算的优先顺序。
A.圆括号()
B.方括号[]
C.大括号{}
D.尖括号<>
A
练一练
[ ] 表示列表
{ } 表示字典
<> 在python中不是运算符
必修一:数据与计算
设A=2、B=3、C=4、D=5,写出下列布尔表达式的值。
(1)A > B and C <= D or 2 * A > C
(2)3 > 2 * B or A == C and B != C or C > D
(3)not A <= C or 4 * C == B ** 2 and B != A + C
False
False
False
课外作业参考答案
①
②
False
False
False
①
②
②
False
False
False
False
False
①
②
③
False
False
False
必修一:数据与计算
本节课到此结束
$