题目:
请设计一个图书类Book,包括书号(num),书名(name),出版日期(Date)
从键盘输入图书册数n,接着输入n个图书信息,按书名排序输出所有图书信息
思路:
首先肯定是先创建一个book类
class book():
def __init__(self,num,name,date):
self.num=num
self.name=name
self.date=date
def write(self):
print(self.num,self.name,self.date)
pass
之后从键盘录入数据
但是到这里出现了一个问题
n=int(input("请输入n:"))
for i in range(n):
shuming=input("shuming:")
shuhao=input("shuhao:")
riqi=input("riqi:")
数据录入了之后怎么传到book里呢?
直接传?
book(shuhao,shuming,riqi)
这样怎么输出?
老师说要把book(shuhao,shuming,riqi)放进一个列表…
然后呢?
我觉得这种方法做不出来…
改变思路
能不能根据我的需要动态创建变量
让创建的变量=book(shuhao,shuming,riqi)
这样就可以用创建的变量.write来输出结果了
这样,我改进了传入数据的过程
creat=locals()
for i in range(n):
shuming=input("shuming:")
shuhao=input("shuhao:")
riqi=input("riqi:")
creat[shuming] = book(shuhao,shuming,riqi)
这样,我把每本书的名字都做成了一个变量。
然后我还需要记录这些书名
creat=locals()
mingzi=[]
n=int(input("请输入n:"))
for i in range(n):
shuming=input("shuming:")
shuhao=input("shuhao:")
riqi=input("riqi:")
creat[shuming] = book(shuhao,shuming,riqi)
mingzi.append(shuming)
接下来按字典序排序
mingzi.sort()
输出即可
for i in range(n):
creat[mingzi[i]].write()
"""
请设计一个图书类Book,包括书号(num),书名(name),出版日期(Date)
从键盘输入图书册数n,接着输入n个图书信息,按书名排序输出所有图书信息
"""
class book():
def __init__(self,num,name,date):
self.num=num
self.name=name
self.date=date
def write(self):
print(self.num,self.name,self.date)
creat=locals()
mingzi=[]
n=int(input("请输入n:"))
for i in range(n):
shuming=input("书名(支持中文):")
shuhao=input("书号:")
riqi=input("日期(示例:2020.11.5):")
creat[shuming] = book(shuhao,shuming,riqi)
mingzi.append(shuming)
mingzi.sort()
for i in range(n):
creat[mingzi[i]].write()
小小吐槽
date居然还要做成类?直接字符串 2020.11.5 不好吗?
这20分我不要了