python学习Day-12

Learning Diary for Python - 12

一、模块

"""
1) python中一个py文件就是一个模块
2) 模块分为系统模块和自定义模块两种
系统模块: python自带的模块,例如:functools、math、random、re、time、datetime、turtle、smtplib、socket、threading等
自定义模块: 由程序员自己创建的模块
"""

# 2.导入模块 - 怎么在一个模块中去使用另外一个模块中的内容
"""
如果我们想要使用的内容(变量、函数、类)在另外一个模块中,可以用,但是使用之前必须先导入
一个模块中的内容想要能被其他模块使用的前提:模块名必须符合变量名的要求(是标识符,不是关键字)
"""
# 3. 怎么导
"""
1) import 模块名     -   导入指定模块,导入后可以通过'模块名.'的方式使用这个模块中所有的全局变量
2) from 模块名 import 变量名1, 变量名2,...   -  导入指定模块,导入后可以直接使用import后面的所有变量
3) from 模块名 import *    -   导入指定模块,导入后可以直接使用模块中所有的全局变量
4) 重命名
import 模块名 as 新模块名   -   对模块名重新命名
from 模块名 import 变量名1, 变量名2 as 新变量名2,...    -  对变量重命名
"""

# =====================导入方式1====================
# import demo1
#
# print(demo1.a1)
# print(demo1.name1)
# demo1.func1()
#
# import random
# print(random.randint(10, 20))

# 同时导入两个模块
# import demo1, random

# =====================导入方式2====================
# from demo1 import a1, func1
# print(a1)
# func1()
#
# from random import randint
# print(randint(10, 20))

# =====================导入方式3====================
# from demo1 import *
# print(a1)
# print(name1)
# func1()

# =====================模块重命名====================
# import studentManagerSystem as SMS
# print(SMS.x)
# print(SMS.count)
#
# import demo1 as de
# demo1 = '测试'
# print(demo1)
# print(de.a1, de.name1)

# =====================变量重命名====================
# from demo1 import func1 as d_func1, name1, a1
# func1 = 'abc'
# d_func1()
# print(func1)
# print(name1)

# 4.导入的原理与阻止导入(了解)
"""
1)导入的原理
不管是通过import直接导入模块,还是通过from-import导入模块中的变量,原理都是进入指定模块,将模块中的代码全部执行一遍

2)阻止导入
在被导入的模块中添加指定的if语句(main提示出来的if语句),将不需要被别的模块执行的代码放到这个if语句中

if __name__ == '__main__':
    需要被阻止导入的代码
"""
# from download import download_film
#
# download_film('恐怖游轮')

# import download
# download.download_film('恐怖游轮')

import demo1


if __name__ == '__main__':
    pass

二、包

# 1. 什么包
# 包含__init__.py文件的文件夹就是包

# 2.导入包中的模块
# ==================导入方式1===============
# import 包.模块 as 新名字
# import package1.jsonfile as jsonfile
# jsonfile.read_json()

# ==================导入方式2===============
# from 包 import 模块1, 模块2, ...
# from 包 import *
# from package1 import jsonfile, csvfile
#
# jsonfile.read_json()
# print(jsonfile.x, jsonfile.name)
#
# csvfile.write_data_to_csv()

# ==================导入方式3===============
# from 包.模块 import 变量1, 变量2,...
# from package1.jsonfile import read_json, name
# read_json()
# print(name)

# from package1.data.exceldata import xx
# print(xx)

# ==================导入方式4=======================
# 如果要使用包中__init__.py中内容,直接用包去导入和使用
# from package1 import xx
# print(xx)

# import package1
# package1.open_file()
# print(package1.xx, package1.yy)

from package1 import xx, yy, open_file

三、异常捕获

# 1. 异常
"""
异常就是错误(程序报错  ==  程序出现异常)
如果执行程序的过程中出现异常,程序会直接结束,不会再接着往后执行
"""
# print('==========')
# # print('abc'[10])
# print('+++++++++')
# print('!!!!!!!!!!!!')

# 2. 异常捕获
"""
异常捕获就是让程序在出现异常的时候,不报错,并且程序可以继续执行。

什么时候需要异常捕获:明明知道某段代码可能会出现异常,但是出现异常原因不是代码写错误了,而是因为使用者操作不当导致的,
                  又不想因此导致程序崩溃,就可以使用异常捕获
    
                  
1)语法1  - 捕获所有类型的异常
try:
    代码段1(需要捕获异常的代码段)
except:
    代码段2(捕获到异常后会执行的代码)
其他代码

执行过程:先执行代码段1,执行过程中如果出现异常不报错马上执行代码段2,然后再执行后续的其他代码。
         如果没有代码段1没有出现异常,不执行代码段2,直接执行后续的其他代码。
         
2)语法2  -  捕获指定异常
try:
    代码段1(需要捕获异常的代码段)
except 异常类型:
    代码段2(捕获到异常后会执行的代码)


3)语法3  -  同时捕获多种异常,针对不同异常做相同的处理
try:
    代码段1(需要捕获异常的代码段)
except (异常类型1, 异常类型2,...):
    代码段2(捕获到异常后会执行的代码)
    
4)语法4  -  同时捕获多种异常,针对不同异常做不一样的处理
try:
    代码段1(需要捕获异常的代码段)
except 异常类型1:
    代码段11
except 异常类型2:
    代码段22
...

"""
# try:
#     print('====')
#     print({'a': 10}['b'])
#     print('++++')
# except:
#     print('出现了异常')


# try:
#     age = int(input('请输入年龄(年龄是整数):'))
#     print(age + '12')
# except:
#     print('年龄输入有误!')

# try:
#     age = int(input('请输入年龄(年龄是整数):'))
#     print(age + '12')
# except ValueError:
#     print('年龄输入有误!')


# 3. 抛出异常   -  主动让程序奔溃
# raise 异常类型
# raise IndexError

class AgeError(Exception):
    def __str__(self):
        return '年龄的范围是0~150'


age = int(input('请输入年龄(0~150):'))
if age < 0 or age > 150:
    raise AgeError
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值