有一次,小编去图书馆,发现在图书馆中有一个“图书管理系统”,有“还书““借阅”“添加书籍”等功能。我便也打算做一个“图书管理系统”。
为了制作一个友好的“图书管理系统”,先列出所有功能的菜单。如下:
print("""
***************************
* 欢迎进入图书管理系统 *
* 0 .退出 *
* 1 .列出所有书籍 *
* 2 .添加书籍 *
* 3 .修改书籍 *
* 4 .删除书籍 *
* 5 .借书 *
* 6 .还书 *
***************************
""")
第二步,用户会输入 0~6 的整数,以对应相对的功能。如果用户输入错误,输出“输入错误,请重新输入”。
while True:
n=input("输入序号(0-6):")
if n=="0":
pass
elif n=="1":
pass
elif n=="2":
pass
elif n=="3":
pass
elif n=="4":
pass
elif n=="5":
pass
elif n=="6":
pass
else:
print("输入错误,请重新输入")
print("") #表示换一行
很多语言都提供了“空语句”支持。Python 也不例外,Python 的 pass 语句就是空语句。
有时候程序需要占一个位、放一条语句,但又不希望这条语句做任何事情,此时就可通过 pass 语句来实现。通过使用 pass 语句,可以让程序更完整。
如下程序示范了 pass 作为空语句的用法:
s=int(input("请输入一个整数: "))
if s>5:
print("大于5")
elif s<5:
pass # 相当于占位符
else:
print("等于5")
正如从上面程序所看到的,对于 s 小于 5 的情形,程序暂时不处理(或不知道如何处理),此时程序就需要通过空语句来占一个位,这样即可使用 pass 语句了。
如:用户输入“0”,即不但需要告诉用户“已退出程序”,还要完成“退出”功能,代码如下:
if n=="0":
print("退出成功")
break
再比如:用户输入“5”( 借书 ),如果库存仍有,提示“借书成功”,并减少此书库存。否则提示“库存不足”。如下程序:
elif n=="5":
xh=intinput()
book=books[xh-1]
if book["num"]>0:
book["num"]-=1
print("借书成功")
else:
print("库存不足")
请参照以上代码,完善其他功能。
可以定义函数,并循环使用函数,有助于代码的简洁性。如代码:
def intinput(n="请输入序号:"):
while True:
s=input(n)
if s.isnumeric():
return int(s)
else:
print("请输入整数")
str.isnumeric() 方法:
检测字符串是否只由数字组成。这种方法是只针对 unicode 对象。
函数参数含义与注意事项:
各部分参数的含义如下:
注:在创建函数时,即使函数不需要参数,也必须保留一对空的“()”,否则 Python 解释器将提示“invaild syntax”错误。另外,如果想定义一个没有任何功能的空函数,可以使用 pass 语句作为占位符。
def intinput(n="请输入序号:"):
while True:
s=input(n)
if s.isnumeric():
return int(s)
else:
print("请输入整数")
books=[{"name":"Scratch","isbn":"12345","num":2},
{"name":"Python","isbn":"12346","num":5}]
print("""
***************************
* 欢迎进入图书管理系统 *
* 0 .退出 *
* 1 .列出所有书籍 *
* 2 .添加书籍 *
* 3 .修改书籍 *
* 4 .删除书籍 *
* 5 .借书 *
* 6 .还书 *
***************************
""")
while True:
n=input("输入序号(0-6):")
if n=="0":
print("退出成功")
break
elif n=="1":
print("序号\t书名\t书号\t数量")
index=1
for book in books:
print("%d\t%s\t%s\t%d"%(index,book["name"],book["isbn"],book["num"]))
index+=1
elif n=="2":
book=dict()
book["name"]=input("请输入书名:")
book["isbn"]=input("请输入书号:")
book["num"]=intinput("请输入数量:")
books.append(book)
print("添加成功")
elif n=="3":
try:
xh=intinput()
book=books[xh-1]
book["name"]=input("请输入书名:")
book["isbn"]=input("请输入书号:")
book["num"]=intinput("请输入数量:")
print("修改成功")
except:
print("出错了")
elif n=="4":
s=intinput()
if 1<=s<=len(books):
del books[xh-1]
print("删除成功")
else:
print("超出范围")
elif n=="5":
xh=intinput()
book=books[xh-1]
if book["num"]>0:
book["num"]-=1
print("借书成功")
else:
print("库存不足")
elif n=="6":
xh=intinput()
try:
book=books[xh-1]
book["num"]-=1
print("还书成功")
except:
print("未查询到书本")
else:
print("输入错误,请重新输入")
print("")