Python 流程控制&异常捕抓

798 阅读2分钟

这是我参与8月更文挑战的第14天,活动详情查看:8月更文挑战

如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。更多往期文章在我的个人专栏

Python 流程控制

背景

正常(简单)的面条代码, 是顺序控制。按照代码编写顺序, 从上而下左到右依次执行。 但一般的业务情况、代码逻辑会出现很多旁路、分支逻辑, 如判断、循环、嵌套:这时候就需要流程控制, 使代码更好运行

判断

score = 92

if score > 90:
    print( "A" )
elif score >= 80:
    print("B")
else:
    print( "E" )

上面代码就是一个简单的评分判断:

  • 分数 score 大于 90 评级为 A
  • 分数 score 大于等于 80 评级为 B
  • 否则其他分数默认 评级为 E

遍历

for i in range( 1, 5 ):
    print( i )

# while 循环
n = 1
while n < 10:
    print( n )
    n += 1
else:
    print( "循环结束" )

# 死循环
while True:
    s = input( '输入 0 退出:' )
    if s == '0':
        break
    print( "你输入的是:", s )

上面代码就是一个 三种常见的遍历方式

  • for i in range( 1, 5 ): for 遍历 range( 1, 5 ) 生成 从 1 到 5 的列表,逐个打印它内部的值
  • while n < 10:是条件终止型循环。 没达到终止条件(判断为 False),循环就会一直进行下去
  • while True:如上面所说,由于一直 条件判断都是为 True,所以循环会一直遍历下去形成死循环

异常处理

代码结构

while True:
    try:
        # 可能会出现异常的代码,比如输入的不是数字
        
        x = int(input("请输入一个数字: "))
        print( x )
    except ValueError:
        print("您输入的不是数字,请再次尝试输入!")

上面代码就是一个 典型的异常处理方式:

  • while True: 使用死循环,在程序启动过后一直让你在命令行输入内容。
  • int(input("请输入一个数字: ")) 接收输入内容,并通过 int() 转换为整型数字。但当你输入不是数字时,int() 无法转换而失败抛出异常错误
  • 当 try except 包裹代码内产生异常错误,就会被捕捉从而进入 except 内的异常处理流程

面向对象

对象构建 employee.py

# -*- coding: utf-8 -*-
__author__ = 'Abo'

class Employee:
    '所有员工的基类'
    empCount = 0

    # 对象初始化方法,实例时 `Employee('hah', 100)` 被调用
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        Employee.empCount += 1

    def displayCount(self):
        # 将 Employee.empCount 的值 赋值到 字符串内 %d 位置
        return "Total Employee %d" %Employee.empCount

    def displayEmployee(self):
        return "Name : ", self.name, ", Salary: ", self.salary

调用对象

if __name__ == '__main__':
    employee = Employee('hah', 100)
    print( employee.displayCount() )
    print( employee.displayEmployee() )