一.运算符和分支结构
1.数学运算符
1.1+(加),-(减),*(乘),/(除),%(取余/求模),//(整除),**(幂运算)
1.1.1+,-,*,/与数学中的+,-,×,÷,相同
print(5+2)
print(6-6)
print(26*2)
print(2/2)
1.1.2% 求余数,取模:x%y求x除以y的余数
print(5%2)
print(8%2)
应用1:判断一个数能否被另一个数整除(判断余数是否为0)
x = 5
y = 3
a = x%y
if a == 0:print("x可以被y整除")
else:print("x不可以被y整除")
应用2:取低位数/取个位(对10或者10的幂次方取余)
num = 2335
print(num%10)
1.1.3// - 整除 x/y的商只取整数
print(5//2)
print(1.8//2)
print(-5//2)
应用:正整数去低位/去个位
num = 23456
print(num // 10)
练习:获取指定正整数的十位数
num = 3945
print(num // 10 % 10)
print(num % 100 // 10)
练习2:获取指定正整数的百位数
num = 3945
print(num // 100 % 10)
print(num % 1000 // 100)
1.1.4** - 幂运算 x**y 求x的y次方
print(2**3)
print(16**0.5)
print(2.2**2)
print(2.0**2)
2.比较运算符&#xff1a;>(大于),>&#61;(大于等于),<(小于),<&#61;(小于等于),&#61;&#61;(等于),!&#61;(不等于)
2.1重要结论&#xff1a;所有的比较运算的运算结果都是布尔
print(10 > 10)
print(10 >&#61; 10)
print(10 < 10)
print(10 <&#61; 10)
print(10 &#61;&#61; 10)
print(10 !&#61; 10)
a &#61; (10&#61;&#61;10)
print(a &#61;&#61; (10&#61;&#61;10))
if a&#61;&#61;1:print("003")
2.2注意&#xff1a;python中的比较运算符可以像数据一样通过连写来表示范围
age &#61; 20
print(18 <&#61; age <&#61; 28)
3.逻辑运算符 - and(逻辑与运算),or(逻辑或运算),not(逻辑非运算)
3.1 and - 逻辑与运算 ,并且,连接需要同时满足的多个条件
运算规则&#xff1a;条件1 and 条件2 全真为真&#xff0c;有假为假
print(True and True)
print(True and False)
print(False and True)
print(False and False)
练习&#xff1a;写出一个数能同时被3和7整除的条件
aa &#61; 63
if aa % 3 &#61;&#61; 0 and aa % 7 &#61;&#61; 0: print("这个数能被3和7整除")
else:print("这个数不能被3和7整除")
print(aa % 3 &#61;&#61; 0 and aa % 7 &#61;&#61; 0,aa%21&#61;&#61;0)
3.2 or - 逻辑或运算 ,或者,连接需要满足的其中一个条件
运算规则&#xff1a;条件1 or 条件2 全假为假&#xff0c;有真为真
print(True or True)
print(True or False)
print(False or True)
print(False or False)
练习1&#xff1a;判断是否能拿奖学金&#xff0c;条件(绩点高于4,或者操评分不低于95)
gpa &#61; 3.8
score &#61; 98
if gpa > 4 or score >&#61;95: print("可以获得奖学金")
else:print("不能拿奖学金")
练习2&#xff1a;判断指定年是否为闰年(普通闰年&#xff1a;公历年份是4的倍数的&#xff0c;且不是100的倍数&#xff0c;为普通闰年。世纪闰年&#xff1a;必须是400的倍数才是世纪闰年)
year &#61; 2020
if year % 4 &#61;&#61;0 and year % 100 !&#61;0:print("该年为普通闰年")
elif year % 400 &#61;&#61;0:print("该年为世纪闰年")
else:print("该年为平年")
3.3 not - 逻辑非运算 对指定条件进行否定(取反)
运算规则&#xff1a; not 条件
print(not True)
num &#61; 18
print(not num &#61;&#61; 18,num !&#61;18)
练习&#xff1a;写出一个不能同时被3和7整除的条件(能被3整除不能被7整除&#xff0c;能被7整除不能被3整除&#xff0c;既不能被3整除也不能被7整除)
num &#61; 22
print(not num % 21 &#61;&#61; 0)
一般用于正向条件情况很复杂&#xff0c;反向条件很简单的时候
3.4 短路操作&#xff1a;
规则&#xff1a;条件1 and 条件2 如果条件1为False,结果为条件1&#xff0c;条件2不执行
条件2 or 条件2 如果条件1为True,结果为条件1&#xff0c;条件2不执行
False and print("aaa")
True or print("bbb")
1 and print("aaa")
0 or print("bbb")
3.5 逻辑运算符的扩展 - 运算对象不是布尔值
print(1 and "49")
print(1 and 49)
print(0 and 49)
print(6 or 7)
着重点&#xff1a;数据的布尔值 - 数据转成布尔的结果 python中所有类型数据都有布尔值
所有的零值和控制对应的布尔值都是False&#xff0c;其它数据的布尔值都是True
常见的零值和空值&#xff1a;0,0.0,’’,[],(),{},none
print(bool(2)&#61;&#61;True,bool(0)&#61;&#61;True,True&#61;&#61;bool(2),True&#61;&#61;bool([]))
4.赋值运算符&#xff1a;&#61;,&#43;&#61;,-&#61;,*&#61;,/&#61;,%&#61;,//&#61;,**&#61;
重要结论&#xff1a;所有赋值运算符都是为了给变量赋值 左边必须为变量
4.1 &#61; - 定义变量,给变量重新赋值
规则&#xff1a;把右边的值赋值给左边的变量
a &#61; 1
print(a)
4.2 &#43;&#61;,-&#61;,*&#61;,/&#61;,%&#61;,//&#61;,**&#61;
规则&#xff1a;把左边的变量的值加上,减去,乘上,除去,取模,整除,平方右边的值之后的值在重新赋值给变量
b &#61; 1
b &#43;&#61; 8
print(b)
b -&#61; 3
print(b)
b **&#61; 2
print(b)
b //&#61; 4
print(b)
b %&#61; 2
print(b)
4.3运算符的优先级
数学运算符>比较运算符>逻辑运算符>赋值运算符
数学运算符&#xff1a;** > *,/,%,// > &#43;,- 有括号先算括号
5.流程控制
5.1顺序结构 - 从上往下依次执行&#xff0c;每条语句执行一次
print(1)
print(2)
5.2分支结构 - 代码的执行看条件是否成立 (if语句)
5.2.1单分支结构 - 如果条件成立就执行某个操作&#xff0c;否则就不执行
语法&#xff1a;
if 条件语句: #if - 关键字&#xff0c;固定 条件语句 - 任何有结果的表达式
代码段
#判断条件是否为True,为True执行代码段&#xff0c;否则不执行
#如果条件语句不是布尔&#xff0c;就转换为布尔来看
a &#61; 1
if a &#61;&#61; 1:print(True)print("aaa")
练习1&#xff1a;如果指定的数是偶数就打印偶数
b &#61; 22
if b % 2 &#61;&#61;0:print("偶数")
if not b % 2:print("偶数")
练习2&#xff1a;如果指定的数是奇数就打印奇数
b &#61; 23
if b % 2 !&#61;0:print("奇数")
if b % 2:print("奇数")
练习3&#xff1a;判断指定(100,1000)数据是否为水仙花数
水仙花数&#xff1a;个位的3次方&#43;十位的三次方&#43;百位的三次方&#61;它本身
a &#61; 153
if (a % 10) ** 3 &#43; (a // 10 % 10) ** 3 &#43; (a // 100) ** 3 &#61;&#61; a:print("是水仙花数")
5.2.2双分支结构 - 如果条件成立就执行某个操作&#xff0c;否则就执行另一个操作
a &#61; 1
if a &#61;&#61; 1:print(True)
else:print(False)
5.2.3多分支结构 - 如果条件成立就执行某个操作&#xff0c;否则判断另一个条件是否成立
age &#61; 50
if age<14:print(age)print("儿童")
elif age<18:print(age)print("青少年")
elif age<26:print(age)print("青年")
elif age<50:print(age)print("中年")
else:print(age)print("老年")
练习1&#xff1a;判断分数等级
score &#61; 89
if score > 90:print("A")
elif score >&#61; 80:print("B")
elif score >&#61; 60:print("C")
else:print("D")
二.作业
选择题
-
print(100 - 25 * 3 % 4)
应该输出什么? &#xff08;B&#xff09;
A. 1
B. 97
C. 25
D. 0
-
下列哪种说法是错误的&#xff08;A&#xff09;。
A. 除字典类型外&#xff0c;所有标准对象均可以⽤于布尔测试
B. 空字符串的布尔值是False
C. 空列表对象的布尔值是False
D. 值为0的任何数字对象的布尔值是False
-
下列表达式的值为True的是&#xff08;B&#xff09;。
A. 3>2>2
B. 1 and 2 !&#61; 1
C. not(11 and 0 !&#61; 2)
D. 10 <20 and 10 <5
-
Python不⽀持的数据类型有&#xff08;A&#xff09;。
A. char
B. int
C. float
D. list
-
&#xff08;多选&#xff09;n &#61; 6784&#xff0c;以下能够获取到7 的⽅法有&#xff08;C,D&#xff09;。
A. n / 1000 % 100
B. n % 1000 / 100
C. n // 100 % 10
D. n // 10 % 100 // 10
-
运⾏以下程序&#xff0c;当从键盘上输⼊12,运⾏结果是&#xff08;A&#xff09;。
x &#61; (input())
print(type(x))
A.
B.
C. 出错
D.
-
下列表达式的运算结果是( D) 。
a &#61; 100
b &#61; False
print(a * b > -1)
A. False
B. 1
C. 0
D. True
填空题
- 查看变量中数据的类型的函数名是&#xff08;type&#xff09;。
- 已知 x &#61; 3 &#61;&#61; 3 ,执⾏结束后&#xff0c;变量x的值为&#xff08;True&#xff09;。
- 已知 x &#61; 3 &#xff0c;那么执⾏语句 x &#43;&#61; 6 之后&#xff0c;x的值为&#xff08;9&#xff09;。
- 表达式 3 ** 2 的值为&#xff08;9&#xff09;,表达式 3 * 2 的值为&#xff08;6&#xff09;&#xff0c;表达式 4 ** 0.5 的值为&#xff08;2.0&#xff09;。
编程题
-
写出判断⼀个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。
num &#61; 20
if num % 10 &#61;&#61; 0:print(num,"能同时被2和5整除")
else:print(num,"不能同时被2和5整除")
-
写出判断⼀个数是否能够被2或者5整除&#xff0c;但是不能同时被2或者5整除的条件语句&#xff0c; 并且打印对应
的结果。
num &#61; 20
if num % 10 !&#61;0 and (num % 2&#61;&#61;0 or num % 5&#61;&#61;0):print(num,"能够被2或者5整除&#xff0c;但是不能同时被2或者5整除")
else:print(num,"不满足能够被2或者5整除&#xff0c;但是不能同时被2或者5整除")
-
假设今天的上课时间为15678秒&#xff0c;编程计算今天上课时间是多少⼩时&#xff0c;多少分钟&#xff0c;多少秒&#xff1b;以‘XX
时XX分XX秒’的⽅式表示出来。
例如&#xff1a;100秒表示成 0时1分40秒
time &#61; 15678
hour &#61; time // 3600
min &#61; (time-hour*3600)//60
sec &#61; time-hour*3600-min*60
print("今天上课时间为&#xff1a;",hour,"小时",min,"分钟",sec,"秒")
-
定义两个变量保存⼀个⼈的身⾼和体重&#xff0c;编程实现判断这个⼈的身材是否正常!
公式: 体重(kg) / (身⾼(m)的平⽅值 ) 在18.5 ~ 24.9之间属于正常。
输出格式&#xff1a; 是否正常&#xff1a;True/False
kg &#61; 70
m &#61; 1.75
if 18.5<&#61; (kg / m**2) <&#61;24.9:print(True)
else:print(False)
-
根据输入的成绩的范围打印及格
或者不及格
score &#61; 88
if score>&#61;60:print(score)print("及格")
else:print(score)print("不及格")
-
根据输入的年纪范围打印成年
或者未成年
&#xff0c;如果年龄不在正常范围内(0~150)打印这不是人!
age &#61; 18
if 0 <&#61; age < 18:print("未成年")
elif 18 <&#61; age <&#61;150:print("成年")
else:print("这不是人!")
-
输入两个整数a和b&#xff0c;若a-b的结果为奇数&#xff0c;则输出该结果&#xff0c;否则输出提示信息a-b的结果不是奇数
。
a &#61; 22
b &#61; 9
if (a-b) % 2 !&#61;0:print(a-b)
else:print("a-b的结果不是奇数")