day3 - python逻辑运算符、if -elif -else 、与或非

180 阅读8分钟

day3 - python逻辑运算符、if -elif -else 、与或非

1 if - else

条件检查

学习在Python中使用条件语句来检查各项条件,并告诉计算机在每种情况下该做什么。 例如:

if <这个条件是真的>:

    <然后执行这一行代码>

num = int(input("随意输入一个整数,猜系统数的大小?\n"))
num1 = 10
if num == num1 :
    print(f"系统数:{num1}")
elif num > num1 :
    print("大于系统数")
else :
    print("小于系统数")

如果条件是假的呢?

else关键词被用来定义一块如果在if语句中检查的条件是假的情况下将执行的代码。

if 猪能飞:

    <永远不会执行的代码>

else:

    print("这是现实") ### Python的缩进

理解缩进在Python中的重要性,作为使某些代码行成为其他代码行下级的一种方式。

例如:

if 5 > 2: #这是一个父代码行

    print("yes") #这是一个子代码行

比较运算符

  •  大于

  • < 小于
  • = 大于或等于

  • <= 小于或等于
  • == 等于
  • != 不等于
num1 = 10
while True:
    try:
        num = int(input("随意输入一个整数,猜系统数的大小?\n"))
        if num == num1:
            print(f"恭喜你!猜对了,系统数是:{num1}")
            break  # 退出循环,因为用户猜对了
        elif num > num1:
            print("大于系统数")
        else:  # 这里假设只有三种情况:等于、大于或小于
            print("小于系统数")
    except ValueError:
        print("错误输入,请输入一个有效的整数。")

print("游戏结束。")

2 取余运算

模数运算符给你的是一次除法的余数。

6 % 2 #结果为 0

6 % 5 #结果为 1

6 % 4 #结果为 2

num1 = 6 % 2
num2 = 6 % 5
num3 = 6 % 4
print(num1)
print(num2)
print(num3)

暂停 1 - 10 % 3 是多少?

你认为这会输出什么?

print(10 % 3)

num4 = 1 - 10 % 3

num5 = 10 % 3
print(num4)
print(num5)

暂停 2 - 检查奇数或偶数

使用你对 Python 中的模数运算符和条件检查所学到的知识编写一些代码,检查输入区域的数字是奇数还是偶数。 如果是奇数就输出 "Odd",否则输出 "Even"。

# 检查奇数或偶数
integer = int(input("请输入一个整数?\n"))
num = 2
if integer % num == 0:
    print("Even")
else:
    print("Odd")

3 嵌套if 和elif

你可以将 if/else 语句放置在其他 if/else 语句中。这被称为嵌套。 例如:

if maths_score >= 90:
    if english_score >= 90:
        print("你擅长所有学科")
    else:
        print("你擅长数学")
if english_score >= 90:
    print("你擅长英语")

在这种情况下,只有当一名学生数学和英语成绩都超过90时,他们才会被评价为 "你擅长所有学科"。

注意:你也可以有不配对 else 语句的 if 语句。

mathematics = int(input("数学成绩多少 \n"))
english = int(input("英语成绩多少 \n"))
if mathematics >= 90:
    if english >= 90:
        print("成绩都很好!")
    else:
        print("数学成绩很好")
else:
    if english >= 90:
        print("英语成绩很好")
    else:
        print("还需继续努力")

4 多if

您可以编写尽可能多的 if 语句来检查彼此无关的不同条件。 比较下面的代码块:

# If/elif/else
if <条件 1 为真>
    <执行 A>
elif <条件 2 为真>
    <执行 B>
else
    <执行 C>
# 嵌套 if 语句
if <条件 1 为真>
    <执行 A>
    if <条件 2 为真>
        <执行 B>
        if <条件 3 为真>
            <执行 C>
# 多个 if 语句
if <条件 1 为真>
    <执行 A>
if <条件 2 为真>
    <执行 B>
if <条件 3 为真>
    <执行 C>

在 if/elif/else 块中,只有 A、B 或 C 的其中一个可以发生,因为 if/elif/else 是互斥的。第一个条件必须失败,才能进入 elif,而 elif(或多个 elif)也必须失败才能进入 else。 只有当条件 1 为假时,才检查条件 2。

在嵌套的 if 语句中,A、B 和 C 都可以发生,但是条件 1、2 和 3 都必须为真。只有在条件 1 为真的情况下,计算机才会检查条件 2。

在多个 if 语句中, A、B、和 C 都可以发生。但是他们彼此完全独立。即使 A 和 B 不发生,C 也可以发生。每个条件都会被检查,无论其他结果如何

# material = input("输入你丢掉的斧头材质(金银铜)?\n")
material1 = "金"
material2 = "银"
material3 = "铜"
if material == material1:
    print("这是你的金斧头。")
elif material == material2:
    print("这是你的银斧头。")
elif material == material3:
    print("这是你的铜斧头。")
else:
    print("可能是木制斧头")
# 多个嵌套if,在嵌套的 if 语句中,A、B 和 C 都可以发生,但是条件 1、2 和 3
# 都必须为真。只有在条件 1 为真的情况下,计算机才会检查条件 2。
mat = input("输入你丢掉的斧头材质?\n")
mat1 = "金"
mat2 = "木"
mat3 = "是"
if mat == mat1:
    mat4 = input("输入你丢掉的斧柄材质?\n")
    if mat4 == mat2:
        mat5 = input("输入你丢掉的是否开刃?\n")
        if mat5 == mat3:
            print("这是你的金制木柄开刃斧头。")
else:
    print("不是你的斧头!")
# 多个并行if,在多个 if 语句中, A、B、和 C 都可以发生。但是他们彼此完全独立。
# 即使 A 和 B 不发生,C 也可以发生。每个条件都会被检查,无论其他结果如何。
mat = input("输入你丢掉的斧头材质?\n")
mat1 = "金"
mat2 = "木"
mat3 = "是"
if mat == mat1:
    print("斧头材质可能你的斧头!")
else:
    print("不是你的斧头!")
mat4 = input("输入你丢掉的斧柄材质?\n")
if mat4 == mat2:
    print("斧柄材质可能你的斧头!")
else:
    print("不是你的斧头!")
mat5 = input("输入你丢掉的是否开刃?\n")
if mat5 == mat3:
    print("开刃可能是你的斧头。")
else:
    print("不是你的斧头!")

5 练习-披萨店

恭喜,你在Python Pizza获得了一份工作!你的第一项任务是建立一个自动披萨订单程序。

根据用户的订单,计算他们的最终账单。使用input()函数收集用户的喜好,然后加上他们的订单总额,告诉他们需要支付多少钱。

小披萨 (S):$15

中披萨 (M):$20

大披萨 (L):$25

为小披萨添加意大利辣香肠(Y 或 N):+$2

为中或大披萨添加意大利辣香肠 (Y 或 N):+$3

为任何尺寸的披萨添加额外的奶酪 (Y 或 N):+$1

示例交互
欢迎来到Python披萨配送!
你想要什么尺寸的披萨?S,M或L:L
你想在你的披萨上加意大利辣香肠吗?Y 或 N:Y
你想要额外的奶酪吗?Y 或 N:N
你的最终账单是:$28.
print("欢迎来到Python披萨配送!\n")
dimension = input("你想要什么尺寸的披萨?S,M或L\n")
sausage = input("你想在你的披萨上加意大利辣香肠吗?Y 或 N\n")
cheese = input("你想要额外的奶酪吗?Y 或 N\n")
amount = 0.00
dimensions = 15.00
dimensionm = 20.00
dimensionl = 25.00
sausages = 2.00
sausageml = 3.00
cheeses = 1.00
if dimension == "S":
    amount += sausage
elif dimension == "M":
    amount += dimensionm
elif dimension == "L":
    amount += dimensionl

if sausage == "Y" and dimension == "S":
    amount += sausages
elif sausage == "Y" and (dimension == "M" or dimension == "L"):
    amount += sausageml

if cheese == "Y":
    amount += cheeses
print(amount)

6 逻辑运算符

您可以使用逻辑运算符结合不同的条件。

A 和 B #两个条件都需要为真
C 或 D #只要一个条件为真即可
非 E #条件必须为假

暂停 1 - 45至55岁的修改器

更新代码,使45至55岁(两龄限均包含在内)的人可以免费乘车。 使用逻辑运算符检查年龄是否大于45,并且也小于55。

注意:简化的警告只是一个建议。您可以考虑并选择它,或者您可以忽略它。在这节课中,我想向您展示与,或和非这几个逻辑运算符。因此,我建议保留原始代码,以便您回顾这节课时复习。

#  1 - 45至55岁的修改器. 与、或、非
age = int(input("请录入乘车人的年龄 ? \n"))
if age >= 45 and age <= 55:
    print("免费!")
elif age >= 55 or age <= 5:
    print("免费 + 坐老幼座位!")
elif not (age >= 45 or age <= 5):
    print("收钱, 做普通座位!")

7 练习, 海拉鲁大陆大陆

你今天的目标是创建一个"选择你自己的冒险游戏"。 使用你今天在课程中所学的知识,你将构建这种文本游戏的一个非常简单的版本。来创建游戏逻辑。

一旦你完成了这个项目,你总是可以扩展游戏,使其更有趣!

from django.template.defaultfilters import lower

print(r'''
*******************************************************************************
          |                   |                  |                     |
 _________|________________.=""_;=.______________|_____________________|_______
|                   |  ,-"_,=""     `"=.|                  |
|___________________|__"=._o`"-._        `"=.______________|___________________
          |                `"=._o`"=._      _`"=._                     |
 _________|_____________________:=._o "=._."_.-="'"=.__________________|_______
|                   |    __.--" , ; `"=._o." ,-"""-._ ".   |
|___________________|_._"  ,. .` ` `` ,  `"-._"-._   ". '__|___________________
          |           |o`"=._` , "` `; .". ,  "-._"-._; ;              |
 _________|___________| ;`-.o`"=._; ." ` '`."\ ` . "-._ /_______________|_______
|                   | |o ;    `"-.o`"=._``  '` " ,__.--o;   |
|___________________|_| ;     (#) `-.o `"=.`_.--"_o.-; ;___|___________________
____/______/______/___|o;._    "      `".o|o_.--"    ;o;____/______/______/____
/______/______/______/_"=._o--._        ; | ;        ; ;/______/______/______/_
____/______/______/______/__"=._o--._   ;o|o;     _._;o;____/______/______/____
/______/______/______/______/____"=._o._; | ;_.--"o.--"_/______/______/______/_
____/______/______/______/______/_____"=.o|o_.--""___/______/______/______/____
/______/______/______/______/______/______/______/______/______/______/_____ /
*******************************************************************************
''')
#  左或右?
# - 右或其它:掉进洞里。游戏结束。
# - 左:游泳或等待?
#
# 游泳或等待?
# - 游泳或其它:被鳟鱼攻击。游戏结束。
# - 等待:选择哪扇门?
#
# 哪扇门?
# - 红色:被火烧。游戏结束。
# - 蓝色:被野兽吃掉。游戏结束。
# - 黄色:你赢了!
# - 其它:游戏结束。
print("欢迎来到海拉鲁大陆.")
print("你的任务是找到宝藏救出公主.")
first = lower(input("首先进入游戏,请问往“left”还是往“right”走 ?\n"))
if first == "left" or not first == "right":
    print("掉进洞里, 游戏结束")
elif first == "right":
    two = input("“游泳”还是“等待”?\n")
    if two == "游泳" or not two == "等待":
        print("游泳或其它:被鳟鱼攻击。游戏结束。")
    elif two == "等待":
        door = input("选择哪扇门,红、蓝、黄、其他 ?\n")
        if door == "红":
            print("被火烧。游戏结束。")
        elif door == "蓝":
            print("被野兽吃掉。游戏结束。")
        elif door == "黄":
            print("你赢了, 获得财宝并救出公主!!!")
        else:
            print("其它:游戏结束。")