工作生活紫水晶书院•文思飞扬(散文、随笔、杂文、评论、科普、日记……

V1.5.4网址注册记录本

2019-06-30  本文已影响55人  大白python
网址注册记录本

学完数据结构与内存管理,现用此知识重写:网址注册记录本。

编程方式:流程式
步骤分为:
一、确定程序循环框架
二、细分功能点,单独编写与测试
三、组合程序

一.程序循环框架

1、程序界面,现用打印方式来作程序界

# -*- conding:utf-8 -*-
'''
#版本:python 3.7
#日期:2019-06-29
@author: 大白python
'''
#程序用到的库
import os

#打印的屏幕作程序界面
print("-" * 10 + "网站注册信息记录本 V1."+ "-"* 10)
print("="* 42)

print(
    """
    ---功能:
      1. 输入网址,用户名,用户密码
      2. 保存用户名,密码到文件:code.txt
      3. 查找网址,显示用户名与密码

    请选择:
    -----------------------------------------
    新录入按:N
    查找请按:S
    退出:    e
    -----------------------------------------
    """
)

打印出结果:

----------网站注册信息记录本 V1.----------
==========================================

---功能:
    1. 输入网址,用户名,用户密码
    2. 保存用户名,密码到文件:code.txt
    3. 查找网址,显示用户名与密码

请选择:
-----------------------------------------
新录入按:N
查找请按:S
退出:    e
-----------------------------------------

2、程序主体循环
运行程序后,每次都会询问用户要做什么。

#此部份代码为程序框架,循环语句来让客人重复选择功能
import os

#获取客户输入
user_input = input("请选择")

#程序进入循环,执行客户选择的功能
while user_input != "e":
    if user_input == "n":
        print("你要新录入网址注册信息")
        #录入功能代码----------
        print(
            """
            ---请选择:
            -----------------------------------------
            新录入按:N
            查找请按:S
            退出:    e
            -----------------------------------------
            """
        )
    user_input = input()
elif user_input == "s":
    site_name = input("请输入网站名:"
    #查询代码--------
    #查询完后,重新让
    print(
        """
        ---请选择:
        -----------------------------------------
        新录入按:N
        查找请按:S
        退出:    e
        -----------------------------------------
        """
    )
    user_input = input()
else:
    print(
        """
        ---请选择:
        -----------------------------------------
        新录入
        按:N
        查找请按:S
        退出:    e
        -----------------------------------------
        """
    )
    user_input = input()

二、细分功能点

1、新站信息录入

#正常来说,不管是新录入还是查询,都需要开始前打开文件    code.txt
#新录入的代码:
with open("code.txt", "a+") as add_site:
#存储一个网站的注册信息
website_info = {
    "web_name":"",
    "url":"",
    "user_name":"",
    "user_code":""
}
#录入内容
website_info["web_name"]= input("请输入网站名:")
website_info["url"]= input("请输入网址:")
website_info["user_name"]= input("请输入网站注册名称:")
website_info["user_code"]= input("请输入网站注册密码:")

#写入文件
#文件只能写入字符串,需字典转为字符串后写入,加上"\n"后,会换行输入
add_site.write(str(website_info) + "\n") 

2、查询网站信息:

#查询
import os


#正常来说,不管是新录入还是查询,都需要开始前打开文件code.txtabs
#以只读方式打开,作查询
user_find = input("输入查询网站名")

#读取所有网站信息,内容是字符串,
with open("code.txt", "r")as find_site:
web = find_site.read()
#用分拆法转为列表
web_site = web.split("\n")

#读取的内容转为列表后,每个元素还是字符串,需将字符串转字典
web_site_new = []
for x in range(len(web_site)-1):
    web_site_new.append(eval(web_site[x]))

#查询网站信息
x = 0 
while x < len(web_site_new):
    if web_site_new[x]["web_name"] == user_find:
          print(
                "网站名称:" + web_site_new[x]["web_name"] + "\n",
                "网站网址:" + web_site_new[x]["url"] + "\n",
                "用户名称:" + web_site_new[x]["web_name"] + "\n",
                "用户密码:" + web_site_new[x]["web_name"] + "\n"                                
            )
          break
    else:
    x = x+1
    #当x到达最后一个序号后
    if x == len(web_site_new):
        print(user_find + "网站没有注册过。")
        break

三、 组合程序

# -*- conding:utf-8 -*-
'''
#版本:python 3.7
#日期:2019-06-29
@author: 大白python
'''
import os
#打印的屏幕作程序界面
print("-" * 10 + "网站注册信息记录本 V1.1"+ "-"* 10)
print("="* 42)

print(
    """
---功能:
    1. 输入网址,用户名,用户密码
    2. 保存用户名,密码到文件:code.txt
    3. 查找网址,显示用户名与密码

请选择:
-----------------------------------------
新录入按:N
查找请按:S
退出:    e
-----------------------------------------
"""
)

#获取客户输入
user_input = input("请选择")

#程序进入循环,执行客户选择的功能
while user_input != "e":
if user_input == "n":
    print("你要新录入网址注册信息")
            
    #正常来说,不管是新录入还是查询,都需要开始前打开文件code.txt
    #新录入的代码:
    with open("code.txt", "a+") as add_site:
        #存储一个网站的注册信息
        website_info = {
            "web_name":"",
            "url":"",
            "user_name":"",
            "user_code":""
        }
        #录入内容
        website_info["web_name"]= input("请输入网站名:")
        website_info["url"]= input("请输入网址:")
        website_info["user_name"]= input("请输入网站注册名称:")
        website_info["user_code"]= input("请输入网站注册密码:")

        #写入文件
        add_site.write(str(website_info) + "\n") #文件只能写入字符串,需字典转为

    #录完后,重新检测客户操作需求
    user_input = input("请选择:新录入按n,查找请按:s,退出请按:e")
    
elif user_input == "s":        
    #正常来说,不管是新录入还是查询,都需要开始前打开文件code.txtabs
    #以只读方式打开,作查询
    user_find = input("输入查询网站名:")

    #读取所有网站信息,内容是字符串,
    with open("code.txt", "r")as find_site:
        web = find_site.read()
        #用分拆法转为列表
        web_site = web.split("\n")

    #读取的内容转为列表后,每个元素还是字符串,需将字符串转字典
    web_site_new = []
    for x in range(len(web_site)-1):
        web_site_new.append(eval(web_site[x]))

    #查询网站信息
    x = 0 
    while x < len(web_site_new):
        if web_site_new[x]["web_name"] == user_find:
            print(
                "网站名称:" + web_site_new[x]["web_name"] + "\n",
                "网站网址:" + web_site_new[x]["url"] + "\n",
                "用户名称:" + web_site_new[x]["web_name"] + "\n",
                "用户密码:" + web_site_new[x]["web_name"] + "\n"                                
                )  
            break
        else:
            x = x+1
            #当x到达最后一个序号后
            if x == len(web_site_new):
                print(user_find + "网站没有注册过。")
        
    
    #录完后,重新检测客户操作需求
    user_input = input("请选择:新录入按n,查找请按:s,退出请按:e")
    
else:
    user_input = input("请选择:新录入按n,查找请按:s,退出请按:e")

PS: 现还没有学过函数与对象,所以只用流程式来写;python是解释型编程语言,流程式也可说是重点的编程式。后续再学的函数式与对象式,也是在流程式基础上,将功能点以函数或对象的方式来表示,以便更加易用与维护。

现将功能点细分出来,后续可以不断添加功能,后续篇章再更新程序。

 100分大神,80分大牛,60分大白,够用,能用,就好
上一篇 下一篇

猜你喜欢

热点阅读