Python程序设计——day4——条件判断语句与异常处理

目录

一、条件判断语句

1、if 语句

2、if……else 判断

3、if……elif……else 判断

4、多重判断

5、嵌套判断

二、异常

1、什么是异常

2、异常处理

3、异常的 else

4、异常的 finally

5、异常语句的综合练习


一、条件判断语句

        条件判断语句是通过if、elif 和 else 三个关键字,在一层或多层判断语句中对代码执行结果的(True 或者 False)进行判断,并根据判断结果来决定后续代码的执行

        注意:Python是严格遵守缩进的语言。

1、if 语句

        用法:如果 + 需要满足的条件,就 + 将要执行的代码

        单独的 if 语句可实现的功能较少,一般都需要搭配 else 或者elif 等使用

示例:

# 根据输入年龄判断能否上网:
age = int(input("请输入你的年龄"))    # 需要对年龄进行int格式化
if age >= 18:                        # if 后面跟条件
    print("先生,祝您上网愉快" )      # 缩进后的代码在 if 条件为真时执行
print('又是美好的一天')               # 未缩进的代码在 无论 if 条件为真或者假时都执行

2、if……else 判断

        用法:如果 + 需要满足的条件,就 + 将要执行的代码(条件为真),否则( if 条件的对立),就 + 将要执行的代码(条件为假)

示例:

# 输入年龄,判断这个人是否成年
age = int(input('请输入你的年龄:'))  
if age >= 18:
    print('你已经成年了')
else:
    print('你还没有成年')

3、if……elif……else 判断

        用法:如果 + 需要满足的条件1,就 + 将要执行的代码(条件1为真),或者 + 需要满足的条件2,就 + 将要执行的代码(条件2为真),否则(条件1与条件2的对立),就 + 将要执行的代码(条件1、2均为假)

  • 当 if……elif……else 并存的时候,先执行 if 当中的语句
  • 若 if 条件为真,则 elif 和 else 当中的代码不会执行
  • 当if条件为假、 elif 当中的条件为真, else 当中的代码不会执行
  • 当 if 条件和 elif 条件同时为假, else 当中的代码才会执行

示例:

# 输入1,玩拳皇
# 输入2,玩魂斗罗
# 输入3,玩坦克大战
game = int(input("请输入你想玩的游戏:"))
if game == 1:
    print("已经打开拳皇,请开始游戏")
elif game == 2:
    print("已经打开魂斗罗,请开始游戏")
elif game == 3:
    print("已经打开坦克大战,请开始游戏")
else:
    print("没这个游戏。。。")

4、多重判断

        用法: 如果同时满足多个条件,就怎么怎么样,需结合 and,or,not 的逻辑判断来完成

示例:

if sex == "男" and age >= 22:
   print("你达到了中国法定结婚年龄")
if sex == "男" or age >= 60:
   print("你可以单独一个人走在印度的大街上")
if not sex == "男":
   print("你不能不戴头巾走在伊朗大街上")

5、嵌套判断

        用法: 多层 if 语句的嵌套,下一层的条件和对立条件组成上一层的条件

示例:

# 根据输入的性别和年龄双重条件来判断是否达到法定结婚年龄
sex = input('请输入性别:')
age = int(input('请输入年龄:'))        # 让用户输入年龄,并将输入的字符串转为整型
if sex == '男':
    if age >= 22:                      # 这里其实可以使用上一小节里的多重判断
        print('你可以结婚')
    else:
        print('你不可以结婚')
else :
    if age >= 20:
        print('你可以结婚')
    else:
        print('你不可以结婚') 
AI解释代码:
    以上代码使用了条件判断语句来判断一个人是否可以结婚。首先使用 input() 函数获取用户输入的性别和年龄。然后通过条件判断语句来判断是否可以结婚。
    如果输入的性别是男性,就进一步判断年龄是否大于等于22岁,如果是,则输出“你可以结婚”,否则输出“你不可以结婚”。
    如果输入的性别是女性,则进一步判断年龄是否大于等于20岁,如果是,则输出“你可以结婚”,否则输出“你不可以结婚”。

二、异常

1、什么是异常

        当程序运行过程中检测到⼀个错误时,解释器就不再继续向下执行了,这时会出现了⼀些红色的报错提示,这就是所谓的"异常"

异常的种类
异常名称异常描述
AttributeError对象没有这个属性
OSError操作系统错误
ImportError导入模块/对象失败
IndexError序列中没有此索引(index)
KeyError没有这个键
NameError未声明/初始化对象 (没有属性)
SyntaxErrorPython 语法错误
TypeError对类型无效的操作
ValueError

传入无效的参数

Exception如不确定异常类型,使用它都可以进行捕获

2、异常处理

        异常是 Python 对象,表示一个错误。当 Python 代码出现异常时我们需要捕获处理它,否则程序会终止执行

  • 捕捉异常可以使用 try / except 语句

  • 如果你不想在异常发生时结束你的程序,只需在 try 里捕获它

  • try / except 语句用来检测 try 语句块中的错误,从而让 except 语句捕获异常信息并处理

        注意:如果尝试执行的代码的异常类型和要捕获的异常类型不⼀致,则无法捕获异常

示例1:

try:
    num = int(input('请输入一个整数:'))        # 可能会发生错误的语句
    print(num)
except:
    print('你输入的不是一个整数')               # 发生错误后执行的语句

示例2:如果需要打印异常结果,就把异常赋值给变量并打印

try:
    print(1+"1")
except Exception as e:
    print(e)

# 运行结果:unsupported operand type(s) for +: 'int' and 'str'

3、异常的 else

        else 表示的是如果没有异常要执行的代码

示例:

try:
    print('ABC'+123)              # 如果注释下一行保留这一行,运行的结果是“456”  
    print('ABC'+'123')            # 如果注释上一行保留这一行,运行的结果是“ABC123 \n 789”
except:
    print(456)                    # 代表如果有异常将跳过异常执行的代码
else:
    print(789)                    # 代表如果没有异常将要执行的代码
AI解释代码:
    以上代码包含一个 try-except-else 的代码块。其含义如下:
    1、try 块中包含两个语句,第一个语句会抛出 TypeError 异常,因为不能将字符串和数字相加;第二个语句能够正常执行,输出 ABC123。
    2、except 块表示当捕捉到异常时需要执行的代码,此处会执行输出 456。
    3、else 块表示当 try 块中的语句没有产生异常时需要执行的代码,此处会执行输出 789。
    综上所述,当注释第一行并运行代码时,输出结果为 456;当注释第二行运行代码时,输出结果为 ABC123 和 789。

4、异常的 finally

        finally 表示的是⽆论是否异常都要执⾏的代码,例如关闭⽂件

示例:

try:
    f = open("test.txt","r")        # “r”是只读模式
    print("没有异常,正常创建")       
except:
    print("出现异常,重新创建")
    f = open("test.txt","w")        # “w”是写入模式
finally:
    f.close()

5、异常语句的综合练习

        我们假设一个场景:你要给你的家人转一笔钱,而转钱这件事需要 “A:把钱从你的账户划出来、B:把这笔钱交给银行、C:银行把这笔钱划给你的家人账户” 三个步骤,如果这三个步骤依次都成功了,那么这个钱就可以转过去了。但是如果其中一个环节出现了问题(也就是异常),那就执行回滚(也就是撤销)的步骤,否则这个钱就可能成了银行的了

示例:

try:
    转账第一步
    转账第二步            # }这三个步骤就是一个整体
    转账第三步
except:
    回滚

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值