交作业啦,写了快一小时,汗颜>>>通讯录
本帖最后由 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 ***** 互相参考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命令 戴宇轩 发表于 2015-1-2 14:43
互相参考
{:5_106:}
貌似我的比较简洁!~~~~~~~~~~~ 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('指令有误!')
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:40 编辑
hacker.jin 发表于 2015-1-2 15:06
不过要是你那样写, 如果新注册一个账户, 原来的账户会被覆盖掉。
不过你写得比我的简洁多了, 加油!还有, 我的脚本19和34行的 <> 都改成 != 我习惯写Python 2 脚本了……
戴宇轩 发表于 2015-1-2 15:38
不过要是你那样写, 如果新注册一个账户, 原来的账户会被覆盖掉。
不过你写得比我的简洁多了, 加油!还有, ...
那个地方忘了~~~~~~~~~~~~~赶时间看视频 一个小时不算多 赞一个,加油⊙▽⊙ 这样也可以!! 看起来非常不错啊 感谢分享 非常感谢楼主分享 挺好 这些是第几课的呀!~ 学习学习 666
两包烟的钱,把不了妹买不了田,不如拿来支持小甲鱼推出更多原创教学视频!
geiligeili .......................DA F