day21

# 把解决一类问题的模块放在同一个文件夹里 —— 包
# import os
# os.makedirs('glance/api')
# os.makedirs('glance/cmd')
# os.makedirs('glance/db')
# l = []
# l.append(open('glance/__init__.py','w'))
# l.append(open('glance/api/__init__.py','w'))
# l.append(open('glance/api/policy.py','w'))
# l.append(open('glance/api/versions.py','w'))
# l.append(open('glance/cmd/__init__.py','w'))
# l.append(open('glance/cmd/manage.py','w'))
# l.append(open('glance/db/models.py','w'))
# map(lambda f:f.close() ,l)

# import glance.api.policy as policy
# policy.get()
#
# from dir.glance.api import policy
# policy.get()

# import sys
# sys.path.insert(0,'C:\\Users\\Administrator\\PycharmProjects\\s9\\day21\\dir')
# # print(sys.path)
# from glance.api import policy
# policy.get()

# from dir import glance
# glance.db.models.register_models('mysql')
# glance.api.policy.get()

# 使用绝对路径 不管在包内部还是外部 导入了就能用
# 不能挪动,但是直观

# from dir import glance
# glance.api.policy.get()
# 相对路径
# 可以随意移动包 只要能找到包的位置,就可以使用包里的模块
# 包里的模块如果想使用其它模块的内容只能使用相对路径,使用了相对路径就不能在包内直接执行了



# 1/0
# name
# 2+'3'
# [][3]
#{}['k']
# try:
#     print('1111')
#     # 1/0
#     print('2222')
#     # name
#     # 2+'3'
#     # [][3]
#     # {}['k']
#     ret = int(input('number >>>'))
#     print(ret*'*')
# except ValueError:
#     print('输入的数据类型有误')
# except Exception:
#     print('你错了,老铁')
# else:
#     print('没有异常的时候执行else中的代码')
# print('===========')
# def func():
#     try:
#         f = open('file','w')
#         ''''''
#         return True
#     except:
#         return False
#     finally:
#         print('执行finally了')
#         f.close()
#
# print(func())





# 程序一旦发生错误,就从错误的位置停下来了,不在继续执行后面的内容
# 使用try和except就能处理异常
    #try是我们需要处理的代码
    #except 后面跟一个错误类型 当代码发生错误且错误类型符合的时候 就会执行except中的代码
    #except支持多分支
    #有没有一个能处理所有错误的类型 : Exception
        # 有了万能的处理机制仍然需要把能预测到的问题单独处理
        # 单独处理的所有内容都应该写在万能异常之前
    # else : 没有异常的时候执行else中的代码
    # finally : 不管代码是否异常,都会执行
        # finally和return相遇的时候 依然会执行
        # 函数里做异常处理用,不管是否异常去做一些收尾工作


# try:
#     main()
# except Exception:
#     pass

try:
    print('1111')
    # 1/0
    print('2222')
    # name
    # 2+'3'
    # [][3]
    # {}['k']
    ret = int(input('number >>>'))
    print(ret*'*')
except Exception as error:
    print('你错了,老铁',error)



# 计算器
# 首先得到一个字符串
# 去空格
# 没有空格的字符串
# 先算最里层括号里的 : 找括号 ,且括号里没有其他括号
# 得到了一个没有括号的表达式 :只有加减乘除
# 从左到右先找到第一个乘除法 :   # 循环
    # 乘除法第一个数的符号是不必匹配的
    # 找到乘除法如何计算呢:
        # 先判断是乘法还是除法
        # 如果是乘法就以‘*’分割得到的内容是字符串数据类型的数
        # 如果是除法就用'/'分割的内容是字符串数据类型的数
        # 转数据类型之后根据 '*','/'计算结果
        # 结果替换原来字符串中的内容
# 所有的乘除法都做完了
# 计算加减  —— 加减法
    # ++ -- -+ +-都要提前处理
    # 计算过程中所有的数都当成浮点数计算
    # 第一位可以为负数
# 只有一个数了 就可以结束了


posted @ 2020-03-13 21:56  西半球  阅读(81)  评论(0编辑  收藏  举报