Python流程控制

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)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值