Python练习

一、编辑登录接口

  1. 输入用户名密码
  2. 认证成功后显示欢迎信息
  3. 输入三次后锁定

说一下我的思路,首先准备工作,创建一个字典存放用户名和密码,一个空列表存放锁定用户,通过pickle模块把这个字典和列表存放到两个文件user_information.pkl、lock.pkl中,关闭文件。

然后,打开文件,通过pickle模块读取两个文件中的dict和list,赋值给两个变量user_info和lock_user,关闭文件

设定次数,初始为0,每循环一次加1,循环开始,用户输入用户名和密码,判断用户名是否存在于lock_user,如果存在,提示用户锁定,结束循环;如果不存在继续向下。接着如果用户名和密码都正确,欢迎登陆,结束程序;如果用户名或密码错误,提示错误,继续登陆,三次以后将用户名添加到lock_user列表,并写入lock.pkl文件。

--------------------------------------------------------------------------
#注释内容,主要用于准备user_information.pkl和lock.pkl文件,运行一次即可 

'''import pickle
user_information = {"wx":"passwd", "Jake":"123456", "Perter":"qwer123"}
user_information_file = open("C:\\Users\\wx\\Desktop\\python\\user_information.pkl", "ab")
pickle.dump(user_information, user_information_file)
user_information_file.close()'''
'''lock_user = []
lock_user_file = open("C:\\Users\\wx\\Desktop\\python\\lock.pkl", "ab")
pickle.dump(lock_user, lock_user_file)
lock_user_file.close()'''

-----------------------------------------------------------------------------------
import pickle    #导入pickle模块
#读模式打开存放用户名密码的文件,并赋值给user_info变量,关闭文件
user_info_file = open("C:\\Users\\wx\\Desktop\\python\\user_information.pkl", "rb")
user_info = pickle.load(user_info_file)
user_info_file.close()

#读模式打开存锁定用户的文件,并赋值给lock_user变量,关闭文件
lock_user_file = open("C:\\Users\\wx\\Desktop\\python\\lock.pkl", "rb")
lock_user = pickle.load(lock_user_file)
lock_user_file.close()


count = 0
while count < 3:
    username = input("Please input your username:")
    password = input("Please input your password:")

    #判断用户名是否锁定,如果已锁定提示错误,结束循环
    if username in lock_user:
        print("The user is locked. Please contact the administrator.")
        break

    #判断用户名密码是否正确,如果正确欢迎登陆,break结束循环
    if username in user_info and password == user_info[username]:
        print("Welcome user {0} login!".format(username))
        break
    else:    #如果不正确,提示错误
        print("Incorrect username or password")
    count += 1   ##次数加1

    ##判断用户登陆次数,等于3表示,已经尝试三次,要锁定用户
    if count == 3:
        lock_user.append(username)  #添加用户到lock_user列表
        lock_user_file = open("C:\\Users\\wx\\Desktop\\python\\lock.pkl", "wb") #以写模式打开存放锁定用户文件
        pickle.dump(lock_user, lock_user_file)  #把lock_user写入存放锁定用户文件
        lock_user_file.close()  #关闭文件
        print("Login failed 3 times, user locked.")

二、三级菜单

  1. 依次选择进入各自子菜单
  2. 所需知识点:列表,字典
  3. 可以随时退出到上一级菜单
#! /usr/bin/env python
# Author:wx
# 2018/9/26 0026 11:07

china = {"北京":{"朝阳":["高碑店", "小红门", "双井", "来广营"],       #定义一个字典存放省、市、县
                 "西城":["金融街", "牛街", "广安门", "新街口"]},
         "河北":{"保定":["徐水", "清苑", "满城", "莲池"],
                 "邯郸":["邯山", "丛台", "复兴", "永年"],
                 "任丘":["运河", "新华", "任丘", "河间"]},
         "河南":{"郑州":["管城", "中原", "金水", "惠济"],
                 "洛阳":["涧西", "洛龙", "吉利", "孟津"],
                 "南阳":["宛城", "卧龙", "淅川", "新野"]}}
import sys     #加载sys模块


while True:      ##进入一级菜单死循环
    province = list(china.keys())      ##提取所有省,转化为一个列表
    for i,j in enumerate(province):   ##利用enumerate()函数把每个省和对应的索引打印出来。索引可以作为编号
        print(i, j)
    p_id = input("请输入你所在省份的编号,输入q退出程序:")  ##提取用户第一级输入

    if p_id.isdigit():
        p_id = int(p_id)   ##判断用户第一级输入是否为数字,如果是转换为整数

        if p_id >= 0 and p_id < len(province):  ##如果输入数字在省列表索引范围内
            city = list(china[province[p_id]].keys())   ##定义第二级市列表
            while True:                               ##进入二级死循环
                for i,j in enumerate(city):           ##打印出市及其对应编号(索引)
                    print(i, j)

                c_id = input("请输入你所在市区的编号,退出程序输入q,返回上一级输入b:") ##提取用户二级输入

                if c_id.isdigit():    ##判断用户第二级输入是否为数字,如果是转换为整数
                    c_id = int(c_id)

                    if c_id >= 0 and c_id < len(city):   ##如果输入数字在市列表索引范围内
                        county = china[province[p_id]][city[c_id]]   ##定义三级县列表

                        while True:                   ##进入三级死循环
                            for i,j in enumerate(county):    ##打印出县及其对应编号(索引)
                                print(i, j)
                            county_id = input("请输入你所在县的编号,退出程序输入q,返回上一级输入b:")   ##提取用户三级输入

                            if county_id.isdigit():    #判断用户第三级输入是否为数字,如果是转换为整数
                                county_id = int(county_id)

                                if county_id >= 0 and county_id <len(county):  ##如果三级输入在县列表索引范围内

                                    print("你所在的地区是:%s->%s->%s" %(province[p_id], city[c_id], county[county_id] ))   ##打印省市区
                                    exit(0)               ##退出程序
                            elif county_id == "b":  ##如果三级输入b,结束三级循环进入二级循环
                                break
                            elif county_id == "q":   ##如果三级输入为q,退出程序
                                sys.exit("正在退出.....")
                            else:                     ##如果不是数字、q、b提示错误,继续二级循环
                                print("输入有误!")
                                continue

                elif c_id == "q":      ##如果二级输入为q,调用sys模块退出程序
                    sys.exit("正在退出....")
                elif c_id == "b":     ##如果二级输入为b,结束二级循环,进入一级循环
                    break
                else:                 ##如果二级输入不是q、b或数字,提示错误继续二级循环
                    print("输入有误!")

        else:   #如果第一级输入数字超出索引,提示错误,继续下次循环第一级
            print("你输入的编号%d不存在,请重新选择."%p_id)


    elif p_id == "q":       ##如果第一级输入q,调用sys模块退出
        sys.exit("正在退出.....")
    else:                   ##如果第一级输入不是数字也不是q,提示输入有误继续下次循环(第一级)
        print("输入有误!")

关于三级菜单我的方法比较麻烦,代码较多(ps:水平有限),网上有更简单的方法可以实现

【6层】一字型框架办公楼(含建筑结构图、计算书) 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码
Python 练习题是指设计用来提高编程技能和加深对Python语言理解的编程问题。这些练习题通常涉及不同的Python编程概念和技巧,从基础语法到高级主题都有涵盖。以下是一些常见的Python练习题类型: 1. 基础语法练习:这些练习帮助初学者熟悉Python的基本语法,比如变量声明、数据类型、控制结构(if-else语句、循环)以及函数定义等。 2. 数据结构操作:涉及Python内置的数据结构,如列表(list)、字典(dict)、元组(tuple)和集合(set)的操作练习,包括增删改查等。 3. 面向对象编程:包含类和对象的定义、继承、多态和封装等面向对象编程概念的实践题目。 4. 错误和异常处理:学习如何处理在代码执行过程可能遇到的错误和异常。 5. 文件操作:练习如何在Python读写文件,包括文本文件和二进制文件的操作。 6. 模块和包:学习如何导入和使用Python标准库的模块,以及如何创建和使用自定义包。 7. 高级特性:练习Python的高级特性,比如列表推导式、生成器、装饰器和上下文管理器等。 8. 数据处理:包含使用Python进行数据分析和处理的练习,如使用Pandas库操作数据框(DataFrame)。 9. Web开发基础:涉及使用Flask或Django等框架进行简单的Web应用开发。 10. 测试:编写单元测试来验证代码的正确性。 通过解决这些问题,可以系统地提升Python编程技能,并在实际开发更加得心应手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值