hacker.jin 发表于 2015-1-2 13:34:58

交作业啦,写了快一小时,汗颜>>>通讯录

本帖最后由 hacker.jin 于 2015-1-2 13:51 编辑

|--- 鱼C出品,必属精品---|
|--- 欢迎进入通讯录程序 ---|
|--- 1>查询联系人资料   ---|
|--- 2>插入新的联系人   ---|
|--- 3>删除已有联系人   ---|
|--- 4>退出通讯录程序   ---|
请输入序号(1-4)以选择功能:5
|---->>>输入 有误<<<----|
|--- 鱼C出品,必属精品---|
|--- 欢迎进入通讯录程序 ---|
|--- 1>查询联系人资料   ---|
|--- 2>插入新的联系人   ---|
|--- 3>删除已有联系人   ---|
|--- 4>退出通讯录程序   ---|
请输入序号(1-4)以选择功能:2
输入姓名:kangjin
请输入联系方式:10086
|--- 鱼C出品,必属精品---|
|--- 欢迎进入通讯录程序 ---|
|--- 1>查询联系人资料   ---|
|--- 2>插入新的联系人   ---|
|--- 3>删除已有联系人   ---|
|--- 4>退出通讯录程序   ---|
请输入序号(1-4)以选择功能:1
输入姓名:kangjin
-->>kangjin:10086
|--- 鱼C出品,必属精品---|
|--- 欢迎进入通讯录程序 ---|
|--- 1>查询联系人资料   ---|
|--- 2>插入新的联系人   ---|
|--- 3>删除已有联系人   ---|
|--- 4>退出通讯录程序   ---|
请输入序号(1-4)以选择功能:3
请输入要删除的姓名:kangjin
删除kangjin成功!
|--- 鱼C出品,必属精品---|
|--- 欢迎进入通讯录程序 ---|
|--- 1>查询联系人资料   ---|
|--- 2>插入新的联系人   ---|
|--- 3>删除已有联系人   ---|
|--- 4>退出通讯录程序   ---|
请输入序号(1-4)以选择功能:4
|--- I Love FishC.com   ---|













**** Hidden Message *****

戴宇轩 发表于 2015-1-2 14:43:11

互相参考from os import system
if len(open('通讯录.txt').read()) == 0:
        open('通讯录.txt', 'w').write('{}')
TXL, orders, order = eval(open('通讯录.txt').read()), , None
print('|--- 欢迎进入通讯录程序 ---|\n|--- 0:退出通讯录程序---|\n|--- 1:查询联系人资料---|\n|--- 2:插入新的联系人---|\n|--- 3:删除已有联系人---|\n|--- 4: 查看整个通讯录---|')
while order != 0:
        order, ots = input('请输入指令序号: '), True
        while order not in orders:
                order = input('输入错误!\n请输入指令序号: ')
        order = int(order)
        if order == 1:
                name = input('请输入联系人姓名: ')
                if name in TXL:
                        print('%s : ' % name, TXL)
                else:
                        if input('您要查找的用户不存在!是否添加?(Yes/No): ') == 'Yes':
                                order, ots = 2, False
        if order == 2:
                if ots:
                        name = input('请输入联系人姓名: ')
                if name in TXL:
                        print('您输入的姓名在通讯录中已存在: -->> %s : ' % name, TXL)
                        if input('是否修改用户资料?(Yes/No): ') == 'Yes':
                                TXL = input('请输入用户联系电话: ')
                else:
                        TXL.setdefault(name, input('请输入用户联系电话: '))
        if order == 3:
                name = input('请输入联系人姓名: ')
                if name in TXL:
                        del TXL
                        print('删除成功!')
                else:
                        print('您要删除的用户不存在!')
        if order == 4:
                if len(TXL):
                        for i in TXL.items():
                                print('%s : ' % i, i)
                else:
                        print('通讯录是空的!')
        if order == 0:
                break
        open('通讯录.txt', 'w').write(str(TXL))
        print()
print('|--- 感谢使用通讯录程序 ---|\n作者: Pythoner_George')
system('pause') #第一句import进的, cmd命令

hacker.jin 发表于 2015-1-2 15:05:30

戴宇轩 发表于 2015-1-2 14:43
互相参考

{:5_106:}

貌似我的比较简洁!~~~~~~~~~~~

hacker.jin 发表于 2015-1-2 15:06:15

hacker.jin 发表于 2015-1-2 15:05
貌似我的比较简洁!~~~~~~~~~~~

account = {}
n=1

def print_menu():
   print('|---->>新建用户:N/n<<----|')
   print('|---->>登陆账号:E/e<<----|')
   print('|---->>退出程序:Q/q<<----|')
   return str(input('|---->>输入指令:'))
   
def new():
   name = str(input('设置账号:'))
   if name in account:
      name = str(input('该账号已被使用,请重新设置:'))
   account = str(input('设置密码:'))
   print('注册成功!')
   
def enter():
   name = str(input('输入账号:'))
   mima = str(input('输入密码:'))
   print('正在验证密码!')
   if mima == account:
      print('登录成功!')
   else:
      print('密码错误!')


while n:
   i = print_menu()

   if i == 'N' or i == 'n':
      new()
   elif i == 'E' or i == 'e':
      enter()
   elif i == 'Q' or i == 'q':
      n=0
   else:
      print('指令有误!')


戴宇轩 发表于 2015-1-2 15:32:53

hacker.jin 发表于 2015-1-2 15:06


我用了pickle模块存储用户(下次打开用户还在), 31讲会介绍import os, pickle
if not os.path.exists('用户.pickle'):
        with open('用户.pickle', 'wb') as FILE:
                pickle.dump(dict(), FILE)
Show_menu, orders, users = lambda : input('|--- 新建用户:N ---|\n|--- 登录账号:E ---|\n|--- 退出程序:Q ---|\n|--- 请输入指令代码:'), ('N', 'E', 'Q'), pickle.load(open('用户.pickle', 'rb'))
def New_user():
        global users
        name = input('请输入用户名: ')
        while name in users:
                name = input('此用户名已被使用, 请重新输入用户名: ')
        users.setdefault(name, input('请输入密码: '))
        print('注册成功! 赶紧试试登陆吧^_^\n')
def User_login():
        correct = True
        name = input('请输入用户名: ')
        while name not in users:
                name = input('该用户不存在! 请重新输入: ')
        password = input('请输入密码: ')
        while password <> users:
                if input('密码不正确! 是否重新输入?(Y/N): ') == 'Y':
                        password = input('请输入密码: ')
                else:
                        correct = False
                        break
        if correct:
                print('欢迎您进入XX系统! 请输入Q退出本程序( ̄▽ ̄)')
        print()
def New_order():
        order = Show_menu()
        while order not in orders:
                order = input('没有这条指令!\n|--- 请输入指令代码:')
        return order
order = None
while order <> 'Q':
        order = New_order()
        New_user() if order == 'N' else User_login() if order == 'E' else None
        with open('用户.pickle', 'wb') as FILE:
                pickle.dump(users, FILE)
print('|--- 感谢您使用此程序 ---|\n作者: Pythoner_George')

戴宇轩 发表于 2015-1-2 15:38:03

本帖最后由 戴宇轩 于 2015-1-2 15:40 编辑

hacker.jin 发表于 2015-1-2 15:06

不过要是你那样写, 如果新注册一个账户, 原来的账户会被覆盖掉。
不过你写得比我的简洁多了, 加油!还有, 我的脚本19和34行的 <> 都改成 != 我习惯写Python 2 脚本了……

hacker.jin 发表于 2015-1-2 17:19:01

戴宇轩 发表于 2015-1-2 15:38
不过要是你那样写, 如果新注册一个账户, 原来的账户会被覆盖掉。
不过你写得比我的简洁多了, 加油!还有, ...

那个地方忘了~~~~~~~~~~~~~赶时间看视频

微逻辑 发表于 2015-1-2 18:08:57

一个小时不算多

小甲鱼的二师兄 发表于 2015-1-2 18:23:08

赞一个,加油⊙▽⊙

瞬秒爆加速 发表于 2015-1-2 21:26:26

这样也可以!!

ma731453785 发表于 2015-1-3 23:24:08

看起来非常不错啊

quyang0421 发表于 2015-1-4 09:53:22

感谢分享

yanshicj 发表于 2015-1-4 10:09:45

非常感谢楼主分享

咚咚呆 发表于 2015-1-4 10:33:20

挺好

945428623 发表于 2015-1-4 16:16:58

这些是第几课的呀!~

ZM_Lxwz 发表于 2015-1-4 16:34:29

学习学习

fengfengfeng 发表于 2015-1-4 22:35:03

666

wenjun8888 发表于 2015-1-4 23:19:57

两包烟的钱,把不了妹买不了田,不如拿来支持小甲鱼推出更多原创教学视频!

Slo】随 发表于 2015-1-5 00:47:00

geiligeili

jackie23cn 发表于 2015-1-5 17:39:43

.......................DA F
页: [1] 2 3 4 5
查看完整版本: 交作业啦,写了快一小时,汗颜>>>通讯录