博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笔记(十六)
阅读量:3934 次
发布时间:2019-05-23

本文共 6253 字,大约阅读时间需要 20 分钟。

图书管理系统

数据库:持久化保存数据   (电脑关机不影响文件保存)

列表、元组、字典都是保存在内存中的,不是持久化数据

用户注册模块

def register():    username=input('输入用户名:')    password=input('输入密码:')    repassword=input('确认输入密码:')    if password==repassword:        #保存信息        with open(r'C:\Users\gszhu\Desktop\p1\users.txt','a') as wstream:            wstream.write('{} {}\n'.format(username,password))        print('用户注册成功')    else:        print('密码不一致!')register()'''输入用户名:admin输入密码:123456确认输入密码:123456用户注册成功'''

用户登录模块

def login():    username=input('输入用户名:')    password=input('输入密码:')    if username and password:        with open(r'C:\Users\gszhu\Desktop\p1\users.txt') as rstream:            while True:                user=rstream.readline()  #admin 123456\n                if not user:                    print('用户名或密码输入有误!')                    break                input_user='{} {}\n'.format(username,password)                如果用户输入的跟文件中的内容一致则认为用户登录成功                if user==input_user:                    print('用户登录成功')                    breaklogin()'''输入用户名:admin输入密码:12345用户名或密码输入有误!'''

显示馆藏模块

def show_books():    print('------馆藏------')    with open(r'C:\Users\gszhu\Desktop\p1\books.txt','r') as rstream:        books=rstream.readlines()        for book in books:            print(book,end='')show_books()

此处报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x99 in position 2: illegal multibyte sequence,感觉读不了汉字?

加了encoding='utf-8'后解决了该问题

def show_books():    print('------馆藏------')    with open(r'C:\Users\gszhu\Desktop\p1\books.txt','r',encoding='utf-8') as rstream:        books=rstream.readlines()        for book in books:            print(book,end='')show_books()'''------馆藏------龙族盗墓笔记斗破苍穹'''

此处就写了几个模块,不全

————————分割线————————

语法错误和异常

pycharm中报红色波浪线的即为语法错误,可以直接修改以避免

异常指程序员在写的时候没有发现任何问题,但在程序运行时报错   格式:xxxError

如:

def divide_(a,b):    return a/bdivide_(1,0)print('--->')'''ZeroDivisionError: division by zero'''

存在问题:报异常后,下面的代码就不运行了  --->解决方法:异常处理

'''格式:try:    可能出现异常的代码except:    如果有异常执行的代码[finally:    无论是否存在异常都会被执行的代码]   []表示可有可无'''

try不能单独存在,要结合except使用 

def func():    n1 = int(input('输入第一个数字:'))    n2 = int(input('输入第二个数字:'))    # + 加法1    sum=n1+n2    print('和是:',sum)func()print('--->')'''输入第一个数字:1输入第二个数字:啊Traceback (most recent call last):  File "E:\...\pythom code\first\exception.py", line 20, in 
func() File "E:\...\pythom code\first\exception.py", line 16, in func n2 = int(input('输入第二个数字:'))ValueError: invalid literal for int() with base 10: '啊''''

有异常之后下面的代码不会执行 

def func():    try:        n1 = int(input('输入第一个数字:'))        n2 = int(input('输入第二个数字:'))        # + 加法        sum=n1+n2        print('和是:',sum)    except:        passfunc()print('--->')'''输入第一个数字:s2Process finished with exit code 0#print不会运行'''
def func():    try:        n1 = int(input('输入第一个数字:'))        n2 = int(input('输入第二个数字:'))        # + 加法        sum=n1+n2        print('和是:',sum)    except:        print('必须输入数字!')func()print('--->')'''输入第一个数字:a2必须输入数字!--->  #print会执行'''

若存在多个异常,使用多个except进行区分

'''异常情况1    try:        有可能会产生多种异常    except 异常的类型1:        print(...)    except 异常的类型2:        pass    except ... '''
def func():    try:        n1 = int(input('输入第一个数字:'))        n2 = int(input('输入第二个数字:'))        per=input('输入运算符号(+ - * /)')        result=0        if per =='+':            result=n1+n2        elif per =='-':            result=n1-n2        elif per =='*':            result=n1*n2        elif per =='/':            result=n1/n2        else:            print('符号输入错误!')        print('结果是:',sum)    except ZeroDivisionError:        print('除数不能为零!')    except ValueError:        print('必须输入数字!')func()print('--->')

插:类

def func():    try:        n1 = int(input('输入第一个数字:'))        n2 = int(input('输入第二个数字:'))        per=input('输入运算符号(+ - * /)')        result=0        if per =='+':            result=n1+n2        elif per =='-':            result=n1-n2        elif per =='*':            result=n1*n2        elif per =='/':            result=n1/n2        else:            print('符号输入错误!')        print('结果是:',result)        #文件操作        with open(r'C:\Users\gszhu\Desktop\aa2.txt','r') as wstream:            print(wstream.read())    except ZeroDivisionError:        print('除数不能为零!')    except ValueError:        print('必须输入数字!')    except Exception:        print('出错!')  #但不知道是什么错func()print('--->')'''输入第一个数字:1输入第二个数字:2输入运算符号(+ - * /)+结果是: 3出错!--->'''

从最小的找起,儿子到爸爸到爷爷到太爷爷……,最大的放在最下面

从上往下比较

Exception往上提会有阴影出现

爸爸在,直接跳过儿子ValueError

总结:多个except,异常类型顺序需注意,最大的Exception放在最后

'''异常情况2:获取Exception的错误原因   try:        有可能会产生多种异常    except 异常的类型1:        print(...)    except 异常的类型2:        pass    except Exception as err:        print(err)    #err的内容即错误的原因'''
def func():    try:        n1 = int(input('输入第一个数字:'))        n2 = int(input('输入第二个数字:'))        per=input('输入运算符号(+ - * /)')        result=0        if per =='+':            result=n1+n2        elif per =='-':            result=n1-n2        elif per =='*':            result=n1*n2        elif per =='/':            result=n1/n2        else:            print('符号输入错误!')        print('结果是:',result)        #文件操作        with open(r'C:\Users\gszhu\Desktop\aa2.txt','r') as wstream:            print(wstream.read())    except ZeroDivisionError:        print('除数不能为零!')    except ValueError:        print('必须输入数字!')    except Exception as err:        print('出错!',err)func()print('--->')'''输入第一个数字:1输入第二个数字:2输入运算符号(+ - * /)+结果是: 3出错! [Errno 2] No such file or directory: 'C:\\Users\\gszhu\\Desktop\\aa2.txt'--->'''
def func():    try:        n1 = int(input('输入第一个数字:'))        n2 = int(input('输入第二个数字:'))        per=input('输入运算符号(+ - * /)')        result=0        if per =='+':            result=n1+n2        elif per =='-':            result=n1-n2        elif per =='*':            result=n1*n2        elif per =='/':            result=n1/n2        else:            print('符号输入错误!')        print('结果是:',result)        #文件操作        with open(r'C:\Users\gszhu\Desktop\p1\aa.txt','r') as wstream:            print(wstream.read())        #列表操作        list1=[]        list1.pop()    except ZeroDivisionError:        print('除数不能为零!')    except ValueError:        print('必须输入数字!')    except Exception as err:        print('出错!',err)func()print('--->')'''输入第一个数字:1输入第二个数字:2输入运算符号(+ - * /)+结果是: 3出错! pop from empty list--->'''

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载地址:http://lzegn.baihongyu.com/

你可能感兴趣的文章
3.9.2 - Lists - Adding and Removing Objects
查看>>
3.9.3 - Sorting Lists
查看>>
3.10 - Maya Commands: ls
查看>>
3.11 - Dictionaries in Python
查看>>
3.12 - Tuples in Python
查看>>
4.4 - For Loops
查看>>
4.2.2 - Logical and/or Operators
查看>>
Lesson 4 Part 2 Softmax Regression
查看>>
文章中运用到的数学公式
查看>>
Projective Dynamics: Fusing Constraint Projections for Fast Simulation
查看>>
从2D恢复出3D的数据
查看>>
glm 中 数据类型 与 原始数据(c++ 数组)之间的转换
查看>>
Derivatives of scalars, vector functions and matrices
查看>>
the jacobian matrix and the gradient matrix
查看>>
VS2010 将背景设为保护色
查看>>
ubutun里面用命令行安装软件
查看>>
ubuntu 常用命令
查看>>
SQLite Tutorial 4 : How to export SQLite file into CSV or Excel file
查看>>
how to move pivot to origin
查看>>
Optimizate objective function in matrix
查看>>