鱼C论坛

 找回密码
 立即注册
查看: 13914|回复: 79

[作品展示] 交作业啦,写了快一小时,汗颜>>>通讯录

[复制链接]
发表于 2015-1-2 13:34:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 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   ---|












游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 2荣誉 +5 鱼币 +5 贡献 +4 收起 理由
新手·ing + 3 + 3 + 3 支持楼主!
wei_Y + 2 + 2 + 1 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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()), [str(i) for i in xrange(5)], 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[name])
                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[name])
                        if input('是否修改用户资料?(Yes/No): ') == 'Yes':
                                TXL[name] = input('请输入用户联系电话: ')
                else:
                        TXL.setdefault(name, input('请输入用户联系电话: '))
        if order == 3:
                name = input('请输入联系人姓名: ')
                if name in TXL:
                        del TXL[name]
                        print('删除成功!')
                else:
                        print('您要删除的用户不存在!')
        if order == 4:
                if len(TXL):
                        for i in TXL.items():
                                print('%s : ' % i[0], i[1])
                else:
                        print('通讯录是空的!')
        if order == 0:
                break
        open('通讯录.txt', 'w').write(str(TXL))
        print()
print('|--- 感谢使用通讯录程序 ---|\n作者: Pythoner_George')
system('pause') #第一句import进的, cmd命令
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-2 15:05:30 | 显示全部楼层



貌似我的比较简洁!~~~~~~~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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[name] = str(input('设置密码:'))
   print('注册成功!')
   
def enter():
   name = str(input('输入账号:'))
   mima = str(input('输入密码:'))
   print('正在验证密码!')
   if mima == account[name]:
      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('指令有误!')

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-2 15:32:53 | 显示全部楼层

我用了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[name]:
                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')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-2 15:38:03 | 显示全部楼层
本帖最后由 戴宇轩 于 2015-1-2 15:40 编辑

不过要是你那样写, 如果新注册一个账户, 原来的账户会被覆盖掉。
不过你写得比我的简洁多了, 加油!还有, 我的脚本19和34行的 <> 都改成 != 我习惯写Python 2 脚本了……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

那个地方忘了~~~~~~~~~~~~~赶时间看视频
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-2 18:08:57 | 显示全部楼层
一个小时不算多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-2 18:23:08 From FishC Mobile | 显示全部楼层
赞一个,加油⊙▽⊙
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-2 21:26:26 | 显示全部楼层
这样也可以!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-3 23:24:08 | 显示全部楼层
看起来非常不错啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-4 09:53:22 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-4 10:09:45 | 显示全部楼层
非常感谢楼主分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-4 10:33:20 | 显示全部楼层
挺好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-1-4 16:16:58 | 显示全部楼层
这些是第几课的呀!~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-4 16:34:29 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-4 22:35:03 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-1-4 23:19:57 | 显示全部楼层
两包烟的钱,把不了妹买不了田,不如拿来支持小甲鱼推出更多原创教学视频!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-5 00:47:00 | 显示全部楼层
geiligeili
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-5 17:39:43 | 显示全部楼层
.......................DA F
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 23:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表