Python学习日志0118

1.函数的参数
argument(实参) parameter(形参)
(1)必需参数
def asd(a): a为形参
print(a)
asd(1) 1为实参

注:①当形参中给定数值,如a=9,实参可不填
②当实参和形参都有值时,使用实参中的数值
③在给参数赋值时,先写必需参数,后写默认参数
例:def asd(b,a=12):
print(a)
asd(15,5)
(2)默认参数:在函数中直接给定的参数(如上例中的a=12)
(3)关键字参数
def asd(name,age):
print(name,age)
asd(age=5,name=“张三”)

def asd(name=“坚果”,age=18):
print(name,age)
asd(age=20)
(4)不定长参数
*a
def show_info(a):
print(a)
show_info(“张三丰”,108,“男”)
注:①不定长参数通常放在最后
②赋值时关键字参数必须放在最后
a的输出方式为元组。当元组中只有一个元素时,需要在元素后面加逗号;如果元组中没有元素,则直接输出()

2.项目:图书管理系统——自动编辑excel表格
import test0118 as book
import hashlib
import xlrd
from xlutils import copy
print("===欢迎登陆图书管理系统")

count = 0
while count<3:
username = input(“请输入用户名”)
password = input(“请输入密码”)
result = book.login(username,password)
if result:
while True:
print(“1查看图书信息")
print("2
添加图书信息”)
print(“3修改图书信息")
print("4
删除图书信息”)
op = input(“请输入操作编号”)
if op==“1”:
book.showBooks()
print("=%s=====" % “end”)
elif op==“2”:
a = input(“请输入图书编号:”)
b = input(“请输入图书名字:”)
c = input(“请输入图书出版社:”)
d = input(“请输入图书价格:”)
e = input(“请输入图书作者:”)
book_=[a,b,c,d,e,“0”]
book.addBook(book_)
print("=%s=====" % “end”)
elif op==“3”:
a = input(“请输入图书编号:”)
b = input(“请输入图书名字:”)
c = input(“请输入图书出版社:”)
d = input(“请输入图书价格:”)
e = input(“请输入图书作者:”)
book_ = [a, b, c, d, e]
book.updateBook(book_)
print("=%s=====" % “end”)
elif op == “4”:
id = input(“请输入图书编号:”)
book.deleteBook(id)
print("=%s=====" % “end”)
else:
print(“请输入正确编号”)
print("=%s=====" % “end”)
else:
print(“密码错误”)
count += 1
if count == 3:
# 读取excel信息
book = xlrd.open_workbook(“f://book.xls”)
sheet = book.sheet_by_name(“user”)
#对表格的行和列赋值
r = sheet.nrows
c = sheet.ncols
#对excel文件和表格0进行备份,防止对数据进行变更时原数据丢失
book_copy = copy.copy(book)
sheet_copy = book_copy.get_sheet(0)
for i in range®:
if sheet.cell(i,1).value==username:
sheet_copy.write(i,3,“1”)
break
book_copy.save(“f://book.xls”)

import xlrd
from xlutils.copy import copy #import后的copy为函数(方法)
import hashlib
def login(username,password):
#读取excel信息
book = xlrd.open_workbook(“f://book.xls”)
sheet = book.sheet_by_name(“user”)
r = sheet.nrows
c = sheet.ncols
flag = False
‘’’
m–username在的列下标
p–password在的列下标
q–state在的列下标
‘’’
m = 0
p = 0
q = 0
for j in range©:
if sheet.cell(0,j).value == “username”:
m = j
elif sheet.cell(0,j).value == “password”:
p = j
elif sheet.cell(0, j).value == “state”:
q = j
#使用uf-8对密码进行加密
password = hashlib.md5(password.encode(“utf-8”)).hexdigest()
#对用户列表进行循环判断,如果满足状态为0、账号密码对应正确,则登陆成功跳出循环;如不满足,则返回继续循环
for i in range(1,r):
if sheet.cell(i,q).value == “0” and sheet.cell(i,m).value == username and sheet.cell(i,p).value == password:
flag = True
#状态、账号、密码三条件同时满足后,break跳出循环
break
return flag
def showBooks():
book = xlrd.open_workbook(“f://book.xls”)
sheet = book.sheet_by_name(“book”)
r = sheet.nrows
c = sheet.ncols
q = 0
#循环第0行表头,找到“状态”所在的列,将列数赋值给q
for j in range©:
if sheet.cell(0,j).value == “state”:
q = j
for i in range(1,r):
#跳过状态为1的书目不显示
if sheet.cell(i, q).value == “1” :
continue
for k in range©:
if k == q:
continue
#将状态为0的书目按顺序打印
print(sheet.cell(i,k).value,end=" ")
print()

#添加信息
def addBook(a):#a为添加的信息列表
book = xlrd.open_workbook(“f://book.xls”)
sheet = book.sheet_by_name(“book”)
r = sheet.nrows
c = sheet.ncols
#将book文件复制,对book_copy副本添加信息
book_copy = copy(book)
#将book_copy副本中的表格1进行复制,对sheet_copy表格添加信息
sheet_copy = book_copy.get_sheet(1)
#循环表格的列,在表格中输入列表的内容
for i in range©:
#尝试运行try下方的代码,如果运行成功(添加列表的列数与表格列数相同)则正常运行,如果运行失败(添加列表的列数少于表格列数)则跳出循环,但不报错
try:
sheet_copy.write(r,i,a[i])
except:
break
#对添加列表后的表格保存到原位置
book_copy.save(“f://book.xls”)

#修改信息
def updateBook(a): #修改与添加数据时,上传的都为列表。修改数据时会更新这一行数据的所有列的数据
book = xlrd.open_workbook(“f://book.xls”)
sheet = book.sheet_by_name(“book”)
r = sheet.nrows
c = sheet.ncols
# 将book文件复制,对book_copy副本进行修改
book_copy = copy(book)
# 将book_copy副本中的表格1进行复制,对sheet_copy表格进行修改
sheet_copy = book_copy.get_sheet(1)
cr = 0#要修改的行号
#修改数据时会更新这一行数据的所有列的数据,因此循环次数为表格列数。循环目的为找到要修改的行号。
for i in range®:
if sheet.cell(i,0).value==a[0]:
cr = i
break
# 尝试运行try下方的代码,如果运行成功(添加列表的列数与表格列数相同)则正常运行,如果运行失败(添加列表的列数少于表格列数)则跳出循环,但不报错
for i in range©:
try:
sheet_copy.write(cr,i,a[i])
except:
break
book_copy.save(“f://book.xls”)

#删除信息
def deleteBook(id):
book = xlrd.open_workbook(“f://book.xls”)
sheet = book.sheet_by_name(“book”)
r = sheet.nrows
c = sheet.ncols
book_copy = copy(book)
sheet_copy = book_copy.get_sheet(1)
cr = 0
for i in range®:
if sheet.cell(i, 0).value == id:
cr = 1
break
sheet_copy.write(cr,c-1,“1”)
book_copy.save(“f://book.xls”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值