python简单案例代码,python案例讲解视频

大家好,给大家分享一下python简单案例代码,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!

'''s18第三周周末⼤作业

模拟博客园系统:

1. 启动程序, 显⽰菜单列表

菜单:

1. 登录

2. 注册

3. ⽂章

4. ⽇记

5. 退出

2. ⽤户输入选项, ⽂章和⽇记必须在登录后才可以进⾏操作.(装饰器)

3. ⽤户注册, 将⽤户名和密码写入到register⽂件中. 同时⽣成"article_⽤户名"⽂件⽤于

存储⽤户⽂章. 同时⽣成"diary_⽤户名" 来存储⽤户的⽇记内容.

4. ⽤户登录成功后, ⽤户名和密码从register⽂件中读取内容. 并记录好当前登录的⽤户

名和登录状态.

5. 在⽤户进入⽂章菜单后. 提⽰⽤户选择: 写⽂章, 读⽂章, 如果⽤户选择读⽂章. 把⽤户

所有的⽂章标题显⽰出来. 让⽤户选择要显⽰的⽂章标题. 显⽰出⽂章内容. 如果选择

写⽂章. 则让⽤户输入要写的⽂章标题和⽂章内容. 并存入该⽤户的⽂章⽂件中.

例如,

alex登录成功后.

他可以选择读⽂章和写⽂章.

读⽂章:

您的⽂章有:

1. 中东之⾏

2. wusir是怎样炼成的

请选择您要读的⽂章序号: 2

标题: wusir是怎样炼成的

内容: wusir这个⼤烧饼, 我们曾经在xxx地⽅的时候xxxxxxxx....

写⽂章:

请输入您要编写的⽂章标题: 太⽩在哪⾥

请输入您这篇⽂章的内容: 太⽩⾦星昨⽇⼜去找王⺟娘娘做头发了.

⽂章保存成功

此时系统读写的⽂件为article_alex⽂件. 如果是peiqi登录. 则操作的是

article_peiqi⽂件. 每个⽤户都会单独分配⼀个 "article_⽤户名" ⽂件.

5. 进入⽇记菜单后. 操作和⽂章类似. 差别是. ⽇记的标题就是当天的⽇期. 不需要⽤户

输入. 直接⽣成系统时间. 当然. 对于⽇记每个⽤户也会有⾃⼰的单独的⽂件产⽣. 统

⼀命名为"diary_⽤户名"'''

importtime

login_name= ""flag=Falsedeflogin_verify(fn):def inner(*args, **kwargs):while 1:if flag ==True:

ret= fn(*args, **kwargs)returnretelse:print("您还没有登录. 请登录!")

login()returninnerdeflogin():print("=============欢迎进入登录环节================")while 1:

uname= input('请输入你的用户名:')

upwd= input('请输入你的密码:')

f= open('register', mode="r", encoding="utf-8")for line inf:

d=eval(line.strip())if uname == d['username'] and upwd == d["password"]:globallogin_nameglobalflag

login_name= uname #保存登录的用户名

flag =Trueprint("=============登录成功!!!!!================")

f.close()return

else:

f.close()#关文件

y = input("=============用户名或密码错误,是否重新登录(Y/N)!!!!!================")if y.upper() != "Y":return

defregist():print('===========进入注册环节==============')

ff=Truewhileff:

uname= input("请输入你的用户名:")#判断用户名是否重复

f = open("register", mode="r", encoding="utf-8")for line inf:#字符串转化回字典

dd =eval(line.strip())if uname == dd['username']:print('用户名重复!!!!')

f.flush()

f.close()break

else: #用户名不存在. 可用

print("用户名可用.")

ff=False

f.flush()

f.close()

upwd= input("请输入你的密码:")

d= {"username":uname, "password":upwd}

f= open("register", mode="a", encoding="utf-8")

f.write(str(d)+"\n")

f.flush()

f.close()#创建存放文件和文章的文件

f1 = open("article_"+uname, mode="w", encoding="utf-8")

f2= open("diary_"+uname, mode="w", encoding="utf-8")

f1.close()

f2.close()print('===========注册成功!!!==============')defread_article():print("========读文章环节==============")

with open("article_"+login_name, mode="r", encoding="utf-8") as f:

count= 1

for line inf:print(count, eval(line.strip())['title'])

count+= 1

while 1:

cc= input("请输入你要读的文章, 输入Q返回上一单元:") #3

if cc.upper()=='Q':returnid=int(cc)if id < 1 or id >count:print('该文章不存在')continue

else:

with open("article_" + login_name, mode="r", encoding="utf-8") as f:for i inrange(id):

line=f.readline()#此时读取的line就是第id行的数据

dd =eval(line.strip())print('您选择的文章标题是: %s' % dd['title'])print("您选择的文章内容是:")print(dd['content'])defwrite_article():print("========写文章环节==============")

title= input('请输入你要写入的文章标题:')

content= input("请输入你要写入的文章的内容:")

d= {"title":title, "content": content}

with open("article_"+login_name, mode="a", encoding="utf-8") as f:

f.write(str(d)+"\n")print("========文章写入成功!!!!!==========")defread_diary():print("========读日记环节==============")

with open("diary_"+login_name, mode="r", encoding="utf-8") as f:

count= 1

for line inf:print(count, eval(line.strip())['title'])

count+= 1

while 1:

cc= input("请输入你要读的日记, 输入Q返回上一单元:") #3

if cc.upper()=='Q':returnid=int(cc)if id < 1 or id >count:print('该日记不存在')continue

else:

with open("diary_" + login_name, mode="r", encoding="utf-8") as f:for i inrange(id):

line=f.readline()#此时读取的line就是第id行的数据

dd =eval(line.strip())print('您选择的日记标题是: %s' % dd['title'])print("您选择的日记内容是:")print(dd['content'])defwrite_diary():print("========写日记环节==============")

title= time.strftime("%Y-%m-%d")

content= input("请输入你要写入的日记的内容:")

d= {"title":title, "content": content}

with open("diary_"+login_name, mode="a", encoding="utf-8") as f:

f.write(str(d)+"\n")print("========日记写入成功!!!!!==========")

@login_verifydefarticle():while 1:print("========欢迎来到文章环节=============")print("1. 读文章")print("2. 写文章")print("3. 返回")

num= input("请输入你要执行的菜单:")if num == "1":

read_article()elif num == "2":

write_article()elif num == "3":print("========结束文章环节=========")return@login_verifydefdiary():while 1:print("========欢迎来到日记环节=============")print("1. 读日记")print("2. 写日记")print("3. 返回")

num= input("请输入你要执行的菜单:")if num == "1":

read_diary()elif num == "2":

write_diary()elif num == "3":print("========结束日记环节=========")return

print("欢迎来到博客园系统")

menu= ("登录", "注册", "文章", "日记", "退出")while 1:for i inrange(len(menu)):print(i+1, menu[i])

m= input('请输入你要执行的菜单:')if m == "1":

login()elif m == "2":

regist()elif m == "3":

article()elif m == "4":

diary()elif m == "5":

exit()else:print("您输入的菜单不存在. 请重新输入")

博客园网站客户端说明: 1.本项目实现的主要功能有博客园论坛新闻浏览、博客浏览、新闻实时评论、一键下载到离线内容、博客搜索、一键登录、发表博客园站内说说(站内叫“闪存”)、一键分享内容到常用社交平台(由于开放平台的审核限制,仅限于测试账号,平台包括新浪微博、腾讯微博、QQ空间、人人网、邮件、短信)。 2.客户端UI用到的知识点包括:强大的SlidingMenu、fragment、actionbarsherlock、ShareSDK、OneKeyShare,ImageLoader、自定义的ListView(下拉刷新和底部加载更多)、listview的嵌套。 3.数据的存储用到的知识点:ImageLoader图片缓存加载、Sqlite数据库、Sherdprefence、文件存储。 4.代码知识点:包括各种异步加载、各种解析器、各种javabean、各种baseadapter,各种代码重用。 5.工程下面有五个文件夹(Cn_blogs(博客园项目)、actionbarsherlock、slidingmenu_library、MainLibs、OneKeyShare)。 6.其中slidingmenu_library和actionbarsherlock是依赖关系,前者依赖后者。(该slidingmenu_library已不是原生的,楼主改过里面的内容了,如果你用新下载的代替我的是不能使用的)。 7.OneKeyShare和MainLibs(也就是ShareSDK)是依赖关系,前者依赖后者。(添加该引用时要在android和javabuild中都添加、并且OneKeyShare编码UTF-8,如果导入之后已经是UTF-8,就先改回GBK并且清除引用之后重新添加引用再改为UTF-8、反复试就调好了,引用和编译的时候eclipse会多次弹出对话框提示(stackoverflow)取消就可以了,,不用管。) 8.Cn_blogs要全部引用这四个包,引包特别重要,引不好工程师是不能编译的。若果大家引用的时候有什么问题,请留言。软件有什么bug也请留言。下面附上截图,百度云随后传。(大家在2.2的试,4.x的不能登录,) 9.注意本项目引用的项目比较多,如果导入有错误严格按照第六步和第七步的操作来进行就可以去除,需要一定耐心,如果没有耐心就不用下载这套源码了。  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值