python -----异常,模块

异常

# _*_ coding:utf-8 _*_              
"""
file: 01.py
date: 2018-07_24 9:18 AM
desc:
在程序开发中,如果对某些代码的执行不确定(程序的语法完全正确)
可以增加try来捕获异常
try:
    尝试执行的代码
except:
    出现错误的处理
"""
try:
    num=int(raw_input('请输入一个整数:'))
except:
    print '输入错误,请输入一个整数'
# 无论输入正确与否,程序都会正常执行
print '*' * 50

这里写图片描述

 _*_ coding:utf-8 _*_              
"""
file: 02.py
date: 2018-07_24 9:32 AM
desc:
当python解释器抛出异常时,最后一行错误信息的第一个单词,
就是错误类型
"""
# 1.提示用户输入一个整数
# 2.使用6除以用户输入的整数并且输出
try:
    num = int(raw_input('请输入一个整数:'))
    result = 6 / num
    print result
# 可能会出的错
# 1.0不能作除数
except ZeroDivisionError:
    print '0不能作除数'
# 2.输入的不是数字
except ValueError:
    print '输入错误,请输入整数'

这里写图片描述

# _*_ coding:utf-8 _*_              
"""
file: 03.py
date: 2018-07_24 9:46 AM
desc:
捕获未知错误:
在开发的时候,要判断所有可能出现的错误,是有一定难度的
不可能面面俱到
如果希望在程序无论出现任何错误,都不会因为prthon解释器抛出的异常而终止
可以再增加一个except Exception as result:
result:一个变量名,可以为其他
"""
try:
    num = int(raw_input('请输入一个整数:'))
    result = 6 / num
    print result
# 可能会出的错
# 1.0不能作除数
# 假设没有想到除数不能为0这个错误,仅仅输出了输入的不是数字这个错误
# 2.输入的不是数字
except ValueError:
    print '输入错误,请输入整数'
# 捕获未知异常
# result:一个变量名,可以为其他
except Exception as result:
    print '未知错误 %s' % result
else:
    print '尝试成功'
finally:
    print '##############'

这里写图片描述
这里写图片描述

# _*_ coding:utf-8 _*_              
"""
file: 04.py
date: 2018-07_24 10:03 AM
desc:
完整语法
try:
    # 尝试执行的代码
    pass
except 错误类型1 :
    pass
except 错误类型2 :
    pass
except Exception as result(result为变量名):
    print '未知错误 %s' % result
# 只是在没有异常时,才会执行的代码
else:
    pass
# 无论是否有异常,都会执行的代码
finally:
    pass
"""

try:
    num = int(raw_input('请输入一个整数:'))
    result = 6 / num
    print result
# 可能会出的错
# 1.0不能作除数
# 假设没有想到除数不能为0这个错误,仅仅输出了输入的不是数字这个错误
# 2.输入的不是数字
except ValueError:
    print '输入错误,请输入整数'
# 捕获未知异常
# result:一个变量名,可以为其他
except Exception as result:
    print '未知错误 %s' % result
# 只是在没有异常时,才会执行的代码
else:
    print '尝试成功'
# 无论是否有异常,都会执行的代码
finally:
    print '##############'

这里写图片描述
这里写图片描述

# _*_ coding:utf-8 _*_              
"""
file: 05.py
date: 2018-07_24 10:20 AM
desc:
异常的传递:
异常的传递--当函数/方法执行出现异常,会将异常传递给函数/方法调用的一方
如果传递到主程序,依旧没有异常处理,程序才会终止,可以在主程序中增加异常捕获
而在主函数中调用其他函数,只要出现异常,都会传递到主函数的异常
捕获中,这就不需要在代码中,增加大量的异常捕获,能够保证代码的整洁
"""
def demo1():
    return int(raw_input('请输入整数:'))
def demo2():
    return demo1()
# 利用异常的传递性,在主程序中捕获异常
try:
    print demo2()
except Exception as result:
    print '未知错误 %s' % result

这里写图片描述

# _*_ coding:utf-8 _*_              
"""
file: 06.py
date: 2018-07_24 10:30 AM
desc:
"""
# 判断用户输入的密码
# <8 错误
# >=8 返回输入的密码
def input_passwd():
    # 1.提示用户输入密码
    pwd = raw_input('请输入密码')
    # 2. 判断密码长度 >=8,就返回用户输入的密码
    if len(pwd) >= 8:
        return pwd
    #3.<8,主动抛出异常
    #print '主动抛出异常'
    #1.常见异常对象(可以添加错误信息)
    ex = Exception('密码长度不够')
    raise ex
# 注意:只抛出异常而不捕获异常,代码会出错
try:
    print input_passwd()
except Exception as result:
    print result

# 先创建异常对象,再抛出异常,再在主函数中捕获异常

这里写图片描述

模块

# _*_ coding:utf-8 _*_              
"""
file: test1.py
date: 2018-07_24 11:01 AM
desc:
"""
title = '模块1'
#函数
def say_hello():
    print '我是 %s' % title
# 类
class Cat(object):
    pass

这里写图片描述

# _*_ coding:utf-8 _*_              
"""
file: test2.py
date: 2018-07_24 11:01 AM
desc:
"""
title = '模块2'
#函数
def say_hello():
    print '我是 %s' % title
# 类
class Dog(object):
    pass

这里写图片描述

# _*_ coding:utf-8 _*_              
"""
file: 03.py
date: 2018-07_24 11:17 AM
desc:
"""
# 在导入模块时,每个导入应独占一行
import test1
import test2

test1.say_hello()
test2.say_hello()

dog = test2.Dog()
print dog
cat = test1.Cat
print cat

这里写图片描述

# _*_ coding:utf-8 _*_              
"""
file: 04.py
date: 2018-07_24 11:20 AM
desc:
"""
# 使用as指定模块的别名(大驼峰命名法)
import test1 as CatModule
import test2 as DogMoudle

DogMoudle.say_hello()
CatModule.say_hello()

dog = DogMoudle.Dog()
print dog
cat = CatModule.Cat()
print cat

这里写图片描述

# _*_ coding:utf-8 _*_              
"""
file: 05.py
date: 2018-07_24 11:27 AM
desc:
"""
from test1 import Cat
from test2 import say_hello
from test1 import say_hello as test1_say_hello
say_hello()
test1_say_hello()
miaomiao = Cat

这里写图片描述

# _*_ coding:utf-8 _*_              
"""
file: 06.py
date: 2018-07_24 11:31 AM
desc:
python的解释器在导入模块的时候,会:
    1.搜索当前目录指定的模块文件,如果有就直接导入
    2.如果没有,再搜索系统目录
注意:在开发时,给文件起名,不要和系统模块文件重名
"""
import random
rand = random.randint(0,10)
print rand
# _*_ coding:utf-8 _*_              
"""
file: random.py
date: 2018-07_24 11:32 AM
desc:
"""
import random
rand = random.randint(0,10)
print rand

这里写图片描述

# _*_ coding:utf-8 _*_              
"""
file: 断言.py
date: 2018-07_24 11:37 AM
desc:
断言:可以理解为提前预言,让人更好的知道错误原因
此例中  ,'div不能为0' 为断言输出的提示
"""
def func(num,div):
    assert (div !=0),'div不能为0'
    return num / div
print func(10,0)

猜你喜欢

转载自blog.csdn.net/awoyaoc/article/details/81182367