人生苦短,我学python day14 异常和常用模块

一、数据持久化的应用

  • 需要持久化的数据通过一个文件来保存
    • 需要持久化的数据通过一个文件来保存
    • 需要这个被持久化的数据的时候,不直接给值,而是从文件中读这个数据
    • 如果持久化的数据发生了改变,需要把最新的值再重新写入文件中
# num = 0       # 上一次执行时的次数
with open('resource/count.txt', encoding='utf-8') as f:
    num = int(f.read())
num += 1
print(num)
with open('resource/count.txt', 'w', encoding='utf-8') as f:
    f.write(str(num))

二、异常捕获

1.异常
  • 程序报错又叫程序出现异常;如果在执行程序的异常中出现异常,那么这个程序会在出现异常的地方结束

    print('========')
    list1 = [1, 2]
    # print(list1[3])
    print('-----------')
    
2.异常捕获
  • 异常捕获就是让程序在出现异常的时候不崩溃,可以继续执行

  • 什么时候捕获异常:明明知道某段代码可能会出现异常,但是又没有办法或者必要去通过修改这段代码来避免异常的时候,就可以使用异常捕获

    • 语法一:
      try:
      ​ 代码段1(需要捕获异常的代码段)
      except:
      ​ 代码段2(出现异常后会执行的代码)
      其他语句。。。

      执行过程:先执行代码段1,如果没有出现异常不执行代码段2直接执行后面其他语句;
      ​ 如果出现异常,程序不崩溃,马上执行代码段2,执行完后才执行后面其他的语句。

    • 语法二:
      try:
      ​ 代码段(需要捕获的代码段)
      except 异常类型:
      ​ 代码段2()出现指定异常后执行的代码

    • 语法三:
      try:
      ​ 代码段1(需要捕获异常的代码段)
      except(异常类型1,异常类型2,…):
      ​ 代码段2(异常出现异常后执行的代码)

    • 语法四:
      try:
      ​ 代码段1(需要捕获异常的代码段)
      except 异常类型1:
      ​ 代码段2(异常出现异常后执行的代码)
      except 异常类型2:
      ​ 代码段3(异常出现异常后执行的代码)
      except 异常类型3:
      ​ 代码段4(异常出现异常后执行的代码)

      try:
          age = int(input('请输入年龄:'))
      except:
          print('输入的年龄有误!')
      
      print('游戏!')
      
3.关键字finally
  • 写在其他语句代码块之前的语句,
    ​ 所有的try-except结构后面都可以跟一个finally,它不影响原来代码的执行。
    ​ finally后面的代码段,不管前面的try-except发生什么,都会执行(包括出现异常没有捕获到)

    print('================================')
    try:
        print([1, 2][0])
    except:
        print('出现异常')
    finally:
        print('最后的挣扎')
    print('其他语句')
    
三、常用系统模块
1.随机模块
  • randint(m, n) - 产生m-n的随机整数

  • random() - 产生[0,1)的随机小数

    # random.random()*x - y     -   产生[y,x+y)的随机小数
    print(random.random())
    print(random.random()*100)      # -   产生[0,100)的随机小数
    print(random.random()*10 + 10)      #   -   产生[10, 20)的随机小数
    
  • random.shuffle(列表) - 洗牌(随机打乱列表中元素的顺序)

    nums = [10, 20, 50, 44, 64]
    random.shuffle(nums)
    print(nums)
    
  • random.choice(列表) - 从列表中随机获取一个元素

    # random.choices(列表,k = N)  -   从列表中随机获取N个元素
    nums = [10, 20, 50, 44, 64]
    print(random.choice(nums))
    
    nums = [10, 20, 50, 44, 64]
    print(random.choices(nums, k=2))
    
上一篇:Python之异常处理


下一篇:一日一技:不使用 try...except 掩盖一些已知异常