python核心编程第9章11题a的解题思路
2013-08-22 08:12
246 查看
#coding:utf-8
"""
python核心编程第9章11题a的解题思路
python核心编程第9章11题a的答案
本答案由python视频培训班授课老师-黄哥所写。
做这样的习题关键得有思路,参加python视频培训班的一个学员,对这种题目无从下手。
黄哥简单说一下思路:用list或dict来组织数据,文件记录数据,无穷循环+break来
控制文本菜单。由于本人时间有限,代码有进一步完善的必要,请感兴趣者,进一步完善。
也可以用字典来组织数据。
9-11.
Web site Addresses.
Write a URL bookmark manager. Create a text-driven menu-based application that allows the user to add, update, or delete entries.
Entries include a site name, Web site URL address,
and perhaps a one-line description (optional).
Allow search functionality so that a search "word" looks
through both names and URLs for possible matches.
Store the data to a disk file when the user quits the application,
and load up the data when the user restarts.
python视频培训班
形式:自己看视频+作业+答疑,利用业余时间学习。视频50讲,视频中详细的讲解解题思路,课后大量习题
训练学员自己写代码,通过训练达到不光能看懂代码,而且能自己写代码的目的。
目标:
第一目标是:通过学习python学会编程 。
第二目标:会写爬虫的基础部分,网页采集。
第三目表:学会web开发
学习周期:三个月到6个月
咨询:qq:1465376564 电话:010-68165761 http://www.qy7788.com.cn/shiyongxinxi/shiyongxinxi193.html """
import re
import cPickle
from os.path import exists
def addUrl(urllist,new):
urllist.append(new)
def deleteUrl(urllist,new):
"""删除"""
urllist.remove(new)
def findUrl(urllist,webname='',url=''):
"""查询"""
f = open("url.dat")
storelist = cPickle.load(f)
f.close()
# print storelist
for item in list(storelist):
if webname in item[0] and url in item[1]:
return item
def writeUrl(urllist):
"""写文件"""
f = open(r"url.dat","w")
cPickle.dump(urllist,f)
f.close()
def readUrl():
"""读文件,先检测文件存在不?"""
if exists('url.dat'):
f = open("url.dat")
storelist = cPickle.load(f)
f.close()
# print storelist
for item in storelist:
for urlitem in item:
print urlitem
urllist = []
#将文件内部的原始信息读到urllist内
if exists('url.dat'):
f = open("url.dat")
storelist = cPickle.load(f)
f.close()
urllist .extend(storelist)
print (30 * '-')
print (" M A I N - M E N U")
print (30 * '-')
print ("1. 增加")
print ("2. 删除")
print ("3. 查询")
print ("4. 写文件")
print ("5. 读文件")
print ("6. 退出")
print (30 * '-')
while True:
try :
choice = int ( raw_input('Enter your choice [1-6] : ') )
except ValueError, e :
print ("'%s' is not a valid integer." % e.args[0].split(": ")[1])
# choice = int ( raw_input('Enter your choice [1-3] : ') )
if choice == 1:
print ("Starting 增加")
webname = raw_input("请输入站名:")
url = raw_input("请输入网址:")
content = raw_input("请输入描述:")
# urllist.append([webname,url,context])
addUrl(urllist,[webname,url,content])
elif choice == 2:
print ("删除...")
webname = raw_input("请输入站名:")
url = raw_input("请输入网址:")
content = raw_input("请输入描述:")
deleteUrl(urllist,[webname,url,content])
elif choice == 3:
print ("查询...")
webname =raw_input("请输入站名:")
url = raw_input("请输入网址:")
# print str(webname)
chaxun = findUrl(urllist,webname,url)
if chaxun:
print "查询结果为:"
for item in chaxun :
print item
else:
print "没有此记录!"
elif choice == 4:
print ("写文件...")
writeUrl(urllist)
elif choice == 5:
print ("读文件...")
readUrl()
elif choice == 6:
print ("退出...")
break
else:
print ("非法内容. Try again...")
"""
python核心编程第9章11题a的解题思路
python核心编程第9章11题a的答案
本答案由python视频培训班授课老师-黄哥所写。
做这样的习题关键得有思路,参加python视频培训班的一个学员,对这种题目无从下手。
黄哥简单说一下思路:用list或dict来组织数据,文件记录数据,无穷循环+break来
控制文本菜单。由于本人时间有限,代码有进一步完善的必要,请感兴趣者,进一步完善。
也可以用字典来组织数据。
9-11.
Web site Addresses.
Write a URL bookmark manager. Create a text-driven menu-based application that allows the user to add, update, or delete entries.
Entries include a site name, Web site URL address,
and perhaps a one-line description (optional).
Allow search functionality so that a search "word" looks
through both names and URLs for possible matches.
Store the data to a disk file when the user quits the application,
and load up the data when the user restarts.
python视频培训班
形式:自己看视频+作业+答疑,利用业余时间学习。视频50讲,视频中详细的讲解解题思路,课后大量习题
训练学员自己写代码,通过训练达到不光能看懂代码,而且能自己写代码的目的。
目标:
第一目标是:通过学习python学会编程 。
第二目标:会写爬虫的基础部分,网页采集。
第三目表:学会web开发
学习周期:三个月到6个月
咨询:qq:1465376564 电话:010-68165761 http://www.qy7788.com.cn/shiyongxinxi/shiyongxinxi193.html """
import re
import cPickle
from os.path import exists
def addUrl(urllist,new):
urllist.append(new)
def deleteUrl(urllist,new):
"""删除"""
urllist.remove(new)
def findUrl(urllist,webname='',url=''):
"""查询"""
f = open("url.dat")
storelist = cPickle.load(f)
f.close()
# print storelist
for item in list(storelist):
if webname in item[0] and url in item[1]:
return item
def writeUrl(urllist):
"""写文件"""
f = open(r"url.dat","w")
cPickle.dump(urllist,f)
f.close()
def readUrl():
"""读文件,先检测文件存在不?"""
if exists('url.dat'):
f = open("url.dat")
storelist = cPickle.load(f)
f.close()
# print storelist
for item in storelist:
for urlitem in item:
print urlitem
urllist = []
#将文件内部的原始信息读到urllist内
if exists('url.dat'):
f = open("url.dat")
storelist = cPickle.load(f)
f.close()
urllist .extend(storelist)
print (30 * '-')
print (" M A I N - M E N U")
print (30 * '-')
print ("1. 增加")
print ("2. 删除")
print ("3. 查询")
print ("4. 写文件")
print ("5. 读文件")
print ("6. 退出")
print (30 * '-')
while True:
try :
choice = int ( raw_input('Enter your choice [1-6] : ') )
except ValueError, e :
print ("'%s' is not a valid integer." % e.args[0].split(": ")[1])
# choice = int ( raw_input('Enter your choice [1-3] : ') )
if choice == 1:
print ("Starting 增加")
webname = raw_input("请输入站名:")
url = raw_input("请输入网址:")
content = raw_input("请输入描述:")
# urllist.append([webname,url,context])
addUrl(urllist,[webname,url,content])
elif choice == 2:
print ("删除...")
webname = raw_input("请输入站名:")
url = raw_input("请输入网址:")
content = raw_input("请输入描述:")
deleteUrl(urllist,[webname,url,content])
elif choice == 3:
print ("查询...")
webname =raw_input("请输入站名:")
url = raw_input("请输入网址:")
# print str(webname)
chaxun = findUrl(urllist,webname,url)
if chaxun:
print "查询结果为:"
for item in chaxun :
print item
else:
print "没有此记录!"
elif choice == 4:
print ("写文件...")
writeUrl(urllist)
elif choice == 5:
print ("读文件...")
readUrl()
elif choice == 6:
print ("退出...")
break
else:
print ("非法内容. Try again...")
相关文章推荐
- python核心编程6-14习题的解题思路
- python核心编程6-14习题的解题思路
- 浙大PAT 2-11. 两个有序链表序列的合并 (解题思路)
- 成绩统计--解题思路
- 话说解题思路
- leetCode 24. Swap Nodes in Pairs (双数交换节点) 解题思路和方法
- leetCode 66.Plus One (+1问题) 解题思路和方法
- leetCode 80.Remove Duplicates from Sorted Array II (删除排序数组中的重复II) 解题思路和方法
- 翻硬币思路&&算法马拉松11 A翻硬币
- 我的第一个:uva12096-解题思路
- leetCode 111.Minimum Depth of Binary Tree(二叉树最小深度) 解题思路和方法
- 动态规划解题的一般思路
- 利用动态规划解题思路
- 通信编码-解题思路及过程
- leetCode 116.Populating Next Right Pointers in Each Node (为节点填充右指针) 解题思路和方法
- CCF模拟题部分题目解题思路与AC代码
- leecode 每日解题思路 152 Maximun Product Subarray
- HIT summer training Contest 11 / 解题报告
- C语言经典题目及解题思路,持续更新中。。。
- n皇后2种解题思路与代码-Java与C++实现