1.逻辑运算符
- 逻辑运算符对真和假两种布尔值进行运算,运算的结果仍是一个布尔值
- 逻辑运算符主要包括and(逻辑与),or(逻辑或),not(逻辑非)
- 在逻辑运算中,False,None,0,0.0,空字符串被看作假(False),其他的看作真(True)
- 优先级not > and >or
运算符 | 含义 | 用法 | 结合方向 |
---|---|---|---|
and | 逻辑与 | a and b | 从左到右 |
or | 逻辑或 | a or b | 从左到右 |
not | 逻辑非 | not C | 从右到左 |
# 逻辑与(and) 表示两个条件同时成立,结果为真,只要右一个条件不满足为假
if 2 > 1 and 1 < 2:
print("True,两个条件同时满足")
# 逻辑短路,如果左操作数为真,结果就是右操作数;如果左操作数为假,结果就是左操作数。
print(2 and 1.5) #输出1.5
print(None and "Hello") #输出None
# 逻辑或(or) 如果两个条件有一个成立,则结果成立
if 3 < 2 or 4 > 1:
print("True,只需满足一个条件")
# 逻辑短路,如果左操作数为真结果就是左操作数;如果左操作数为假,结果就是右操作数(不管右操作数是真还是假)
print(2 or "wrold")
print(None or 0)
# 逻辑非(not),如果原来是假,not后结果True;如果原来真,not后结果就是False
print(not(2 > 1)) #2 > 1 是True,not后是False
print(not(2 < 1)) #2 <1 是假,not后是True
2.运算符的优先级
- 尽量不要把一个表达式写的过于复杂,如遇到复杂的需求,则最好分步运算
- 不要过多的依赖于运算符的优先级,否则代码的可读性很差,在实际的项目开发中,一般采用()
3.数据类型的转换
- Python是一种强类型语言:要求运算符两边的操作必须是同一个类型,否则必须转换
- 数值类型:int,foat,bool可以自动进行类型转换,转换方向:bool -> int -> float
函数名 | 函数值 |
---|---|
int(x,[基数]) | 将数字或字符串转换为整数,如果x为浮点数,则自动截断小数部分 |
float(x) | 将x转换为浮点型 |
str(x) | 将x转换为字符串 |
bool(x) | 转换成bool类型的True或False |
repr(x) | 返回一个对象的String格式,适合机器执行 |
eval(str) | 执行一个字符串表达式,返回计算的结果 |
# 自动类型转换
# int float bool会自动进行类型转换,不会报语法错
print(3+5.3)
print(3 + True)
# int 把整数字符串转换为整数
print(int('12'))
# float 把数值字符串转换为float
print(float("23"))
# bool 可以把0,0.0,'',None转换为假,其他是真
print(bool(0)) #False
print(bool(30)) # True
# str 把其他类型转换为字符串
print(str(9))
# eval可以把参数字符串当表达式执行
# 字符串不要包含赋值运算符
print(eval("1+1"))
#自动转换类型
a, b = eval("3.1,5") # 3,5
print(a,b)
print(type(a),type(b)) #a:float, b:int
4.编码规范
- 代码编排:
- 默认缩进4个空格,不能用tab键和空格混合缩进
- 所有行限制的最大字节数为79
- 添加适当的空行
- 空格:
- 二元运算符两边添加一个空格
- 逗号,分号,冒号后边留一个空格,前面不留
# 缩进,使用tab,要么使用空格,不要混用
if 3 == 3:
print("hello") #缩进4个空格 正确
print("hello") #缩进5个空格 错误
#二元(需要两个操作数的运算符)运算符两边留一个空格
b = 1 + 1 #正确
b = 1+1 #能正常运算,但是编码不规范
5.if选择语句
- 流程控制对于任何一门编程语言来说都是都是非常重要的
- 计算机解决某个具体问题,3种情况,顺序执行所有的语句,选择执行部分语句和循环执行部分语句
5.1 if语句
- ”如果…就…“
- 执行流程: 如果表达式为真,则执行"语句块";如果为假,就跳过"语句块",执行后面的语句
# 语法:if 表达式
# 语句块
a = 3
b = 2
if a > b:
print(a)
5.2 if … else 语句
- “如果…否则…”
-执行流程: 如果满足条件,执行if后面的"语句块",否则,执行else后面的"语句块"
# 语法:if 表达式:
# 语句块1
# else:
# 语句块2
A = input("请输入整数数字:")
A = int(A)
if A == 1:
print("猜对了")
else:
print("猜错了")
#if...else...便捷用法
#if条件成立执行if前面的语句块,不成立执行else后面的语句块
A = 1
Res = (A + 1)if A == 1 else (A - 1)
5.3 if…elif…else语句
- 如满足某个条件,进行某种处理,否则,如果满足另一种条件,则进行另一种处理…
- 执行流程:如果表达式为真,执行语句;表达式为假,跳过该语句,进行下一个elif判断,如所有表达式都为假,就执行else中语句
#语法:if 表达式1
# 语句块1
# elif 表达式2
# 语句块2
# elif 表达式3
# 语句块3
# ...
# else:
# 语句块n
A = 2
if A == 1:
print("1",A)
elif A == 2:
print("2",A)
elif A == 3:
print("3",A)
else:
print("没有匹配到数据")
6.作业
6.1 从键盘上输入一个数,显示它的绝对值(不许使用abs())
Num = eval(input("请输入一个数字"))
if Num > 0:
print(Num)
elif Num < 0:
print(-Num)
6.2 假设用户名为admin,密码为123abc,从控制台分别输入用户名和密码,如果一直用户名和密码都能匹配上的话,则验证成功,否则验证失败
User = input("请输入用户名:")
Password = input("请输入密码:")
if User == "admin" and Password == "123abc":
print("密码验证成功")
else:
print("密码验证失败")
6.3 计算面积,编写程序,由用户输入的三角形三条边,计算三角形的面积
Side_1 = eval(input("请输入三角形边长1:"))
Side_2 = eval(input("请输入三角形边长2:"))
Side_3 = eval(input("请输入三角形边长3:"))
if Side_1 + Side_2 > Side_3 and Side_1 + Side_3 > Side_2 and Side_1 - Side_2 < Side_3 and Side_1 - Side_3 < Side_2:
L = (Side_1 + Side_2 + Side_3) / 2
B = L * (L - Side_1) * (L - Side_2) * (L - Side_3)
import math
S = math.sqrt(B)
print("三角形面积是:",S)
else:
print("输入三条边构不成三角形")
6.4 已知分段函数
键盘上输入X的值,请输入f(x)的值
Num = eval(input("请输入x的值:"))
if Num > 1:
a = 3 * Num - 5
print("f(x)的值为%d"%a)
elif -1 <= Num <= 1:
b = Num + 2
print("f(x)的值为%d"%b)
elif Num < -1:
c = 5 * Num + 3
print("f(x)的值为%d"%c)
6.5 百分制成绩转换为等级制成绩。要求: 如果输⼊入的成绩在90分以上(含90分)输出A;80分-90分(不不含90分)输出 B;70分-80 分(不不含80分)输出C;60分-70分(不不含70分)输出D;60分以下输出E
Num = eval(input("请输入您的成绩:"))
if Num >= 90:
print("A")
elif 80 <= Num < 90:
print("B")
elif 70 <= Num < 80:
print("C")
elif 60 <= Num < 70:
print("D")
elif Num < 60:
print("E")
6.6 写⼀一个四则计算器器,运⾏行行界⾯面如下: (1)不不要求连续做,每次只做⼀一种运算
功能菜单:
‘’------------------------------------------
[1] 加法 [2] 减法
[3] 乘法 [4] 除法
[0] 退出
‘’------------------------------------------
请输⼊入您的选择(0—4):
1 请输⼊入第⼀一个数:5
5 请输⼊入第⼆二个数:3
3 + 5 = 8
Num = int(input("请输入你的选择[0-4]:"))
if Num == 0:
print("你已退出系统")
exit(0)
Num_1 = int(input("请输入第一个数:"))
Num_2 = int(input("请输入第二个数:"))
if Num == 1:
print(Num_1,"+",Num_2,"=",Num_1 + Num_2)
elif Num == 2:
print(Num_1,"-",Num_2,"=",Num_1 - Num_2)
elif Num == 3:
print(Num_1,"*",Num_2,"=",Num_1 * Num_2)
elif Num == 4:
print(Num_1,"/",Num_2,"=",Num_1 / Num_2)