python写的通讯录

通讯录的代码如下:

class People:
    name=''
    number=0
    n=0
    def say(self):
        print('{}\n\t名字:{}\n\t电话号码:{}'.format(self.n+1,self.name,self.number))
    def revise(self):
        number=input('请输入号码:')
p=People()
list=[]
def view():
    for i in list:
        i.say()
def add():
    list.append(People())
    print('现在一共有{}个联系人'.format(len(list)-1))
    edit(len(list)-1)
def edit(a,b=1):
    ct=0
    if(b==2):
        print('''\t1.名字:{}\n\t2.电话号码:{}'''.format(list[a].name, list[a].number))
        ct=int(input('请问你要修改什么?请输入对应的序号'))

    list[a].n=a
    if(b==1 or ct==1):
         list[a].name=input('请输入名字:')
    if(b==1 or ct==2):
        list[a].number=input('请输入电话号码:')
    if(b==1):
        print('已成功添加!')
    else:
        print('已成功修改!')
    list[a].say()
def revise():
    view()
    a=int(input('请输入你要修改的联系人的序号'))-1
    edit(a,2)
for i in range(1,10):
    print('''你可以输入下面的序号以执行对应的操作:
                1.查看所有联系人
                2.增加联系人
                3.修改联系人
                4.查找联系人''')
    a=int(input())
    if a==1:
        view()
    if a==2:
        add()
    if a==3:
        revise()
 
 
 
反思如下:
	在python里,类也属于对象,如果要类实例化则应在后面加()
	往list里加一类元素时,应该list.append(P())
class P:
    name=''

p=P()
list=[]
list.append(p)
list[0].name='hhh'
list.append(p)
list[1].name='haha'
print(list[0].name)
print(list[1].name)
像上面这样,因为append(p)加进去的是对象p,所以虽然list的下标不同,但是修改的是同一个p,所以最后的输出结果是"haha"。
正确的做法应该是list append(P())
class P:
    name=''

p=P()
list=[]
list.append(P())
list[0].name='hhh'
list.append(P())
list[1].name='hahahha'
print(list[0].name)
print(list[1].name)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值