iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python学习day1作业总结
  • 137
分享到

Python学习day1作业总结

作业Python 2023-01-31 05:01:41 137人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

为了以后更好更快速的复习,此博客记录我对作业的总结。对于基础作业,我认为最重要的是过程,至于实现是不是完美,代码是不是完美,虽然重要,但是作业过程中,用到的知识点是值得总结和整理的。1. 用户输入帐号密码进行登陆  2. 用户信息保存在文件

为了以后更好更快速的复习,此博客记录我对作业的总结。对于基础作业,我认为最重要的是过程,至于实现是不是完美,代码是不是完美,虽然重要,但是作业过程中,用到的知识点是值得总结和整理的。

1. 用户输入帐号密码进行登陆  
2. 用户信息保存在文件内  
3. 用户密码输入错误三次后定用户  

思路:

1)输入时用户名后,先判断用户名是否被锁,然后检查用户名是否存在用户数据库;  
2)输入相同不存在用户名3次,此用户名被锁;  
3)输入用户名存在时才可输入密码,相同用户名时,输入密码错误三次,此用户名被锁;  
4)若每次都没输入存在的用户,则再次要求输入用户,直到达到总输入次数;

基本流程图:

wKioL1gMPYDC8XOrAAHI3_mcZTE285.jpg

代码:

cat user_login.py #主程序
#!#!/usr/bin/env python
#_*_coding:utf-8_*_
'''
 * Created on 2016/10/10 22:13.
 * @author: Chinge_Yang.
'''
import os
import getpass
retry_max = 3
retry_count = 0
user_file = "user.txt"
lock_file = "user_lock.txt"
user_same = 0
user_tmp = ""
if not os.path.exists(lock_file):   #不存在时,则创建
    f = open(lock_file,'w')
    f.close()

while retry_count < retry_max:
    #输入用户名
    user_name = input("Please input your name:")
    #输入的用户名和上次输入的对比
    if user_name == user_tmp:
        #用户一样数加1
        user_same += 1
    else:
        #用户一样数归0
        user_same = 0
    #输入的用户名存为临时变量
    user_tmp = user_name
    #判断用户是否被锁
    lock_check = open(lock_file)
    for line in lock_check:
        line = line.split()
        #用户被锁,打印提示
        if user_name == line[0]:
            exit("User \033[1;31;40m%s\033[0m is locked!" % user_name)
    lock_check.close()
    #查看是否存在于用户数据库
    user_check = open(user_file)
    for l in user_check:
        l = l.split()
        user = l[0]
        passwd = l[1]
        if user_name == user:
            #输入密码
            #user_passwd = input("Please input your passWord:")
            user_passwd = getpass.getpass("\033[1;33;40mPlease input your password:\033[0m")
            #判断密码是否正确
            if user_passwd == passwd:
                exit("\033[1;32;40mWelcome to you!\033[0m")
            else:
                print("User \033[1;31;40m%s\033[0m password is error!" % user_name)
            #用户存在于数据库,跳出循环
            break
    else:
        print("User \033[1;31;40m%s\033[0m not match in the user file!" % user_name)
    user_check.close()
    if user_same >= 2:
        print("User \033[1;31;40m%s\033[0m name was locked!" % user_name)
        #将用户名写入到锁定文件中
        file = open(lock_file,"a")
        file.write(user_name+"\n")
        file.close()
    retry_count += 1

user.txt文件内容格式:

cat user.txt
apache 123
jim 234
Docker 333
fank yhn

总结:

1.getpass模板用于输入密码时,不显示明文;

2.os.path.exists(文件路径)用于判断文件是否存在;

3.input的用法,版本3,默认输入的内容是字符类型,如果是变量名,则为此变量名的数据类型;

4.if判断语句用法;

5.while循环语句用法;

6.split()指定分隔符对字符串切片用法;

7.print(“%s” % name)等格式化输出;

8.颜色输出用法:手打出来 \033[32;1m内容\033[0m ;

9.数学算法使用;

1. 运行程序输出第一级菜单  
2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单  
3. 菜单数据保存在文件中

思路:

1.菜单数据使用字典保存在文件中,使用import读取;

2.获取一级菜单;

3.获取二级菜单;

4.获取三级菜单;

5.使用循环打印菜单;

基本流程图:

p_w_picpath

代码:

cat Three_layer_menu.py #主程序
#!/usr/bin/env Python
#_*_coding:utf-8_*_
'''
 * Created on 2016/10/16 21:31.
 * @author: Chinge_Yang.
'''
import sys
import menu
while True:
    #定义一层菜单为字典
    one_dict = {}
    #获取字典所有的键
    one_layer = menu.menu.keys()
    #获取字典所有的枚举
    one_enu = enumerate(one_layer)
    #一层菜单字典
    for index1,value1 in one_enu:
        one_dict[index1]=value1
    for k1 in one_dict:
        print ("\033[32m%d\033[0m --> %s" %(k1,one_dict[k1]))
    print ("输入【back】:返回;【quit】:退出")
    once_select = input("请输入你的选择:\n").strip()
    if once_select.isdigit():
        once_select = int(once_select)
        if 0 <= once_select < len(one_dict):
            print("---->进入一级菜单 \033[32m%s\033[0m" %(one_dict[once_select]))
            while True:
                #定义二层菜单为字典
                two_dict = {}
                # 获取字典所有的键
                two_layer = menu.menu[one_dict[once_select]].keys()
                # 获取字典所有的枚举
                two_enu = enumerate(two_layer)
                # 二层菜单字典
                for index2, value2 in two_enu:
                    two_dict[index2] = value2
                # 打印二层菜单
                for k2 in two_dict:
                    print("\033[32m%d\033[0m --> %s" % (k2, two_dict[k2]))
                print("输入【back】:返回;【quit】:退出")
                twice_select = input("请输入你的选择:\n").strip()
                if twice_select.isdigit():
                    twice_select = int(twice_select)
                    if 0 <= twice_select < len(two_dict):
                        print("---->进入二级菜单 \033[32m%s\033[0m" % (two_dict[twice_select]))
                        # 定义三层菜单列表
                        three_layer = menu.menu[one_dict[once_select]][two_dict[twice_select]]
                        while True:
                            # 打印三层菜单
                            for k3 in three_layer:
                                print (k3)
                            print ("输入【back】:返回;【quit】:退出")
                            three_select = input("请输入你的选择:\n").strip()
                            if three_select == "back":
                                break
                            elif three_select == "quit":
                                sys.exit ("----谢谢使用----")
                            continue
                else:
                    if twice_select == "back":
                        break
                    elif twice_select == "quit":
                        sys.exit ("----谢谢使用----")
                    print ("\033[31m请输入数字\033[0m")
        else:
            print("----\033[31m数字超出范围,请重新输入!\033[0m----")
    else:
        if once_select == "back":
            break
        elif once_select == "quit":
            sys.exit ("----谢谢使用----")
        print ("\033[31m请输入数字\033[0m")
cat menu.py
#!/usr/bin/env python  
# _*_coding:utf-8_*_  
'''  
* Created on 2016/10/16 19:37.  
* @author: Chinge_Yang.  
'''
menu = {  
    "家用电器": {  
        "电视": [  
            "合资品牌电视",  
            "国产品牌电视",  
            "互联网品牌电视"  
        ],  
        "空调": [  
            "壁挂式空调",  
            "柜式空调",  
            "中央空调",  
            "空调配件"  
        ],  
        "洗衣机": [  
            "滚筒洗衣机",  
            "洗烘一体机",  
            "波轮洗衣机",  
            "迷你洗衣机",  
            "洗衣机配件"  
        ]  
    },  
    "电脑": {  
            "电脑整机": [  
                "笔记本",  
                "游戏本"  
                "平板电脑",  
                "平板电脑配件",  
                "台式机",  
                "一体机服务器",  
                "笔记本配件"  
            ],  
            "电脑配件": [  
                "显示器",  
                "CPU",  
                "主板",  
                "硬盘",  
                "内存"  
            ],  
            "外设产品": [  
                "鼠标",  
                "键盘",  
                "键鼠套装",  
                "网络仪表仪器",  
                "U盘",  
                "移动硬盘"  
            ]  
        }  
    }

总结:

1.字典的用法,包括获取key,value及相关函数用法;

2.列表的用法,遍历列表的用法;

3.import导入py文件用法;

--结束END--

本文标题: Python学习day1作业总结

本文链接: https://www.lsjlt.com/news/188720.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python学习day1作业总结
    为了以后更好更快速的复习,此博客记录我对作业的总结。对于基础作业,我认为最重要的是过程,至于实现是不是完美,代码是不是完美,虽然重要,但是作业过程中,用到的知识点是值得总结和整理的。1. 用户输入帐号密码进行登陆  2. 用户信息保存在文件...
    99+
    2023-01-31
    作业 Python
  • python学习之路—day1
    变量:存储信息,日后被调用、修改操作. 常量:固定不变的量,字母大小写。 命名规则: 1,、字母数字下划线组成 2、命名具有代表意义的 3、不能以数字开头,特殊符号开头 4、不能以保留字命名,lg:for等 5、命名一般不以中文命名 6、...
    99+
    2023-01-30
    之路 python
  • python学习总结-----pytho
    一、python简介    python 是一种面向对象、解释性的脚本语言,遵循 GPL 协议。语法简单、社区强大、丰富的库支持。又被称为“胶水语言”。能把其他语言(主要C/C++)写的模块很轻松的结合在一起。二、python 安装 win...
    99+
    2023-01-31
    python pytho
  • python 学习总结5
    字符串类型及操作 一、字符串类型的表示   (1)字符串:由0个或多个字符组成的有序字符序列     例如:“请输入带有符号的温度值” 或者‘c’都是字符串   (2)字符串是字符的有序序列,可以对其中的字符进行索引     例如:“请”...
    99+
    2023-01-30
    python
  • python 学习总结2
    温度转换问题 一、温度转换   目前有两种表示温度的方法一种是摄氏度另一种是华氏度,摄氏度的结冰点为0度,沸点为100度将温度等分刻画,华氏度的结冰点为32度,沸点为212度将温度进行等刻度划分。   现需要将按格式输入的摄氏度转换为华氏...
    99+
    2023-01-30
    python
  • python 学习总结1
    计算机与程序设计 一、计算机的概念   1.计算机是根据指令操作数据的设备。   2.计算机主要包括两个功能性一个是功能性另一个是计算性   功能性是对数据的操作,表现为数据计算,输入输出处理和结果存储   可编程性是根据一系列指令自动的...
    99+
    2023-01-30
    python
  • Python学习总结__Day1
    一、Python是一门什么类型语言 1、解释型:一边编译一边执行,劣势是运行速度慢,但通过运用PyPy交互解释器(JIT技术)会让python程序执行速度快很多。优势是可移植性强。 2、强类型:即类型安全类型。除非通过强制转换,否则变量类...
    99+
    2023-01-31
    Python
  • python 学习总结3
    Python蟒蛇绘制 一、实现程序如下 1 import turtle 2 turtle.setup (650, 350, 200, 200)#turtle的绘图窗体turtle.setup(width, height, start...
    99+
    2023-01-30
    python
  • python 学习总结4
    数字类型及操作 一、整数类型   (1)python中的整数与数学中的概念是一致的,可以正也可以负,没有取值范围。        pow(x,y)函数是计算x的y次幂,想计算多大就多大。   (2)在整数类型中有四种进制形式      十...
    99+
    2023-01-30
    python
  • Python学习总结(二)----pyt
         继续学习python中,越来越发现python的方便,也找到了一些python与C/C++的一些相同点与不同点。由于我看的书中缺乏编程练习题,我就在想如何能够尽快地熟悉python。由于我一直在参加算法竞赛,所以就想到了用Pyth...
    99+
    2023-01-31
    Python pyt
  • Python学习day3作业
    作业需求 HAproxy配置文件操作 根据用户输入,输出对应的backend下的server信息 可添加backend 和sever信息 可修改backend 和sever信息 可删除backend 和sever信息 操作配置文件前...
    99+
    2023-01-31
    作业 Python
  • Day1 Python入门学习,第一周
    体会 第一次开始学习Python,不知道自己之后能否持续坚持下去。我想不论怎样只要有时间和就努力坚持。争取以周为单位按要求完成相应工作量的学习。持续学习,不断总结和进步。 一、Python安装   Python的安装是还是是一件比较麻烦的...
    99+
    2023-01-30
    第一周 入门 Python
  • python学习总结二(python基础
    转眼间已经2月份了,python学习总结二进行中ing,今年的目标和打算。。。哎动力哪来,继续吧。 总结上篇 就是 对python 说包含的东东(字符串,数字,变量,操作符,函数,模块,类,列表,等) 总体简单解释下。 后面详细说明 一.语...
    99+
    2023-01-31
    基础 python
  • python学习总结四(python数字
      一简介 数字 提供了标量贮存和直接访问。他是不可改类型。也就是数字的值变化时是生成了 新的对象。 1 如何创建数字和赋值。(数字对象) a = 1 就这么简单。 2 如何更新数字 因为单独数字不能做为变量,改变他的值。“3+5” 实际上...
    99+
    2023-01-31
    数字 python
  • python学习总结五(python序列
    一 序列  这些类型是由一些成员共同组成的一个序列整体,所以统称为序列。 元组 ,列表,字符串。 1 .标准的操作符 都能应用序列。 2.序列类的操作符 ①成员关系操作符(in not in) 成员关系符就是判断一个字符是否属于这个字符串,...
    99+
    2023-01-31
    序列 python
  • python学习总结三(python对象
    一 什么是对象?   从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对...
    99+
    2023-01-31
    对象 python
  • mysqlimport学习总结
    原文链接: https://www.modb.pro/db/23208xy 摘要:mysqlimport是MySQL数据库提供的一个命令行程序,可用于数据导入。...
    99+
    2024-04-02
  • WorkFlow学习总结
     最近在工作中要实现一种“流程审批”的功能,查阅资料得知,workFlow技术可以满足我的需求,于是就开始沉下心来好好学习一下这门技术。总结的学习资料也拿出来和大家共享一下。  什么是工作流: 工作流...
    99+
    2023-06-05
  • Shell和Python学习教程总结
    博友们好,由于运维相关技术不断发展,个人能力也不断提高,日常积累的经验不能及时更新到以往的博文中。因此,为了更好的帮助大家学习运维技术,特地针对Shell和Python脚本语言总结了文档,此文档会不定期修改或增加知识点。 下载地址:百度云盘...
    99+
    2023-01-31
    教程 Shell Python
  • MySQL学习之基础操作总结
    目录1.库的操作2.表的操作创建表查看表结构删除表修改表1.库的操作 查看当前mysql数据库下默认有哪些库 show databases; 创建一个库 create databas...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作