初学pyhon的几个练习小程序

一、概述

  此程序示例为博主根据路飞学城的python的作业而写的(博主也是python初学者,仅花了99元报了路飞学城的python入门14天集中营3期网络课堂班),此程序非常适合python初学者拿来联系,下面粘贴3个示例供大家参考学习

二、程序示例

一、简易登陆程序

1、需求说明

  程序启动,用户输入用户名和密码,如果输入正确,正登陆成功

  输入的用户名不存在,则提示用户注册

  允许用户输入密码3次错误,当超过3次后,则锁定改用户。

  下次重新运行程序,如果用户被锁定,则不允许登陆

2、相关代码

# 用户信息格式
# users = {‘zhangsan‘:[‘张三‘,‘123‘,‘24‘,1],‘lisi‘:[‘李四‘,‘456‘,‘24‘,1],‘wangwu‘:[‘王五‘,‘789‘,‘24‘,0]}
import pickle
# 注册用户
def regist():
    username = input(‘请填写登陆账号>>‘)
    pwd = input(‘请填写登陆密码>>‘)
    nickname = input(‘请填写昵称>>‘)
    age = input(‘请填写年龄>>‘)
    users[username] = [nickname,pwd,age,1]
    f = open(‘user.pkl‘,‘wb‘)
    pickle.dump(users,f)
    f.close()
    print(‘注册成功‘)

# 锁定用户
def lockUser(users,username):
    users[username][3] = 0
    f = open(‘user.pkl‘,‘wb‘)
    pickle.dump(users,f)
    f.close()

# 解锁用户(暂时未用到)
def unLockUser(username):
    fr = open(‘user.pkl‘,‘rb‘)
    users = pickle.load(fr)
    users[username][3] = 1
    fw = open(‘user.pkl‘,‘wb‘)
    pickle.dump(users,fw)
    fw.close()

# ----------begin---------------------
try:
    fi = open(‘user.pkl‘,‘rb‘)
except FileNotFoundError:
    f = open(‘user.pkl‘,‘wb‘)
    pickle.dump({},f)
    f.close()

count = 1
flag = True
while(True):
    if(flag):
        name = input(‘请输入您的用户名:‘)
        falg = False
    password = input(‘请输入您的密码:‘)
    f = open(‘user.pkl‘,‘rb‘)
    users = pickle.load(f)
    if(users.get(name) == None ):
        print(‘该用户还未被注册,是否现在注册?y/n‘)
        if(input() == ‘y‘):
            # 注册用户
            regist()
            result = input(‘是否立即登陆?y立即登陆;n退出‘)
            if(result == ‘n‘):
                break
            else:
                flag = True
        else:
            break
    elif(users.get(name)[3] == 0):
        print(‘该账号已经被锁定,请联系管理员进行解锁!‘)
        break
    elif(users.get(name)[1] != password):
        if(count == 3):
            # 锁定用户
            lockUser(users,name)
            print(‘密码三次输入错误,已经锁定该账号,请联系管理员进行解锁‘)
            break
        else:
            print(‘密码不正确‘,‘还有‘,str(3-count),‘次输入的机会!‘)
            count += 1
            flag = False
    else:
        print(‘登陆成功!‘)
        break
# --------------end------------------------

二、简易购物车程序

1、需求说明

  启动程序后让用户输入工资,然后打印商品列表

  允许用户根据商品编号来添加商品

  用户添加商品后,检测余额是否充足,如果不充足则提示,充足直接扣款

  用户可以一直购买商品,也可以随时退出,退出时打印购买的商品和余额

2、相关代码

goods = {‘001‘:[‘优衣库裤子‘,499],‘002‘:[‘小米手机‘,2499],‘003‘:[‘iPhone7‘,4199],‘004‘:[‘联想电脑‘,4999],‘005‘:[‘智力车厘子‘,36],‘006‘:[‘python从入门到放弃‘,79]}
buyCart = []
try:
    money = int(input(‘请输入您的金额:‘))
except ValueError:
    print(‘请输入正确的金额格式‘)
    exit()
print(‘-----------商品列表---------------‘)
print(‘商品编号    名称   价格‘)
for item in goods:
    s = ‘%s    \t%s    \t%d‘ % (item,goods.get(item)[0],goods.get(item)[1])
    print(s)
while(True):
    goodsNO = input(‘\n请选择要添加的商品编号:‘)
    if(goodsNO not in goods):
        print(‘\n选择的商品编号不存在,请重新选择!‘)
        continue
    if(goods.get(goodsNO)[1] > money):
        print(‘\n金额不足,无法添加该商品!‘)
    else:
        buyCart.append(goodsNO)
            s = ‘%s    \t%s    \t%d‘ % (it
        money = money - goods.get(goodsNO)[1]
        print(‘\n当前余额为%d‘ % money)
    yn = input(‘\n是否继续添加商品?退出输入n,继续按其他任意键:‘
    if(yn) == ‘n‘):
        print(‘\n\n-------已购买的商品----------‘)
        print(‘商品编号    名称   价格‘)
        for item in buyCart:em,goods.get(item)[0],goods.get(item)[1])
            print(s)
        print(‘\n余额为:‘ + str(money))
        break

三、简易多级菜单程序

1、需求说明

  多级菜单的查看

  要求程序启动后,用户可以一次选择进入各子菜单

  可以在任意一级返回上一级

  可以在任意一级菜单退出程序

  输入‘dir’来查看当前菜单下的子菜单,输入‘cd ..’返回上一级目录,输入‘cd /’返回一级菜单,输入‘path’查看当前菜单路径,输入‘quit’来退出程序

2、相关代码

menu = {
    ‘北京‘:{
        ‘海淀‘:{‘五道口‘:{‘soho‘:{},‘google‘:{}},‘中关村‘:{‘爱奇艺‘:{},‘汽车之家‘:{}},‘上地‘:{‘百度‘:{},‘联想‘:{}}},
        ‘昌平‘:{‘回龙观‘:{‘新浪‘:{},‘网易‘:{}},‘东小口‘:{‘中科软‘:{},‘中软‘:{}},‘朱辛庄‘:{‘智联‘:{},‘拉钩‘:{}}},
        ‘朝阳‘:{‘三里屯‘:{‘太极华青‘:{},‘北京云财‘:{}},‘国贸‘:{‘北京华志信‘:{},‘北京伟业前程‘:{}},‘望京‘:{‘北京佰加星‘:{},‘北京智达方通‘:{}}}
    },
    ‘上海‘:{
        ‘浦东‘:{‘金桥‘:{‘上海求步‘:{},‘上海驰亚‘:{}},‘合庆‘:{‘中国电信‘:{},‘上海顶通‘:{}}},
        ‘虹口‘:{‘江湾‘:{‘上海伦伟‘:{},‘上海津腾‘:{}},‘提篮桥‘:{‘上海芒橙‘:{},‘上海直达‘:{}}}
    },
    ‘广州‘:{
        ‘黄埔‘:{‘板桥‘:{‘恒大地产‘:{},‘广州市蒲公英‘:{}},‘官洲‘:{‘广州动点网络‘:{},‘广州玖维‘:{}}},
        ‘海珠‘:{‘客村‘:{‘广州海度‘:{},‘广州艾秀‘:{}},‘新港‘:{‘广州优识‘:{},‘广州合光‘:{}}}
    }
}
print(‘您可以输入‘dir’来查看当前菜单下的子菜单,输入‘cd ..’返回上一级目录,输入‘cd /’返回一级菜单,输入‘path’查看当前菜单路径,输入‘quit’来退出程序\n‘)
level = 0 #当前数据项的级别,比如北京为1级
menus = [menu] #存储当前从0-5级的各级的字典‘
path = [] #存放当前菜单路径
while(True):
    value = input(‘>>‘)
    if(value == ‘dir‘):
        print(list(menus[level]))
    elif(value == ‘cd ..‘): #返回上级
        if(level > 0):
            level -= 1
            menus.pop()
            path.pop()
    elif(value == ‘cd /‘): #返回根路径
        menus = [menu]
        level = 0
        path = []
    elif(value == ‘quit‘): #退出
        break
    elif(value == ‘path‘): #查看当前菜单路径
        paths = ‘‘
        for item in path:
            paths = paths + ‘-‘ + item
        print(paths[1:])
    elif(value.startswith(‘cd ‘)): #进入输入的下一级菜单
        value = value[3:]
        if(value not in menus[level]):
            print(‘找不到当前项下的子菜单‘,value)
        else:
            level += 1
            menus.append(menus[level-1][value])
            path.append(value)
    else:
        print(‘不是查看菜单的命令‘)

原文地址:https://www.cnblogs.com/lpob/p/8510867.html

时间: 2024-10-11 00:40:24

初学pyhon的几个练习小程序的相关文章

【转】java初学基础班经典练手小程序300例(飘叶寻梦整理)

一.函数1.*************************************************************************************************************************************编程题: 定义一个功能,完成对考试成绩的等级划分. 90~100 A 优秀 80~89 B 良好 70~79 C 中等 60~69 D 及格 60以下 E 不及格 class  Test04{ public static

Java仿短视频小程序全栈开发实战视频教程+课程代码

第1章 微信小程序初学入门第2章 微信小程序的基础组件学习第3章 form表单组件与小程序前后端通信第4章 产品介绍与数据库规划介绍第5章 开发用户登录注册与用户信息第6章 上传视频业务流程开发第7章 视频展现页开发第8章 开发视频的留言板第9章 开发短视频后台办理体系第10章 项目上线与发布 下载地址:百度网盘 原文地址:http://blog.51cto.com/13870071/2142671

初学Java:整理的几个简单小程序以及初学心得

整理这几天里写的几个小程序,都是循环练习//设N是一个四位数,它的9倍恰好是其反序数//(例如:1234的反序数是4321),求N值package Azhi;public class Job_5 {public static void main(String[] args) { for(int n=1000;n<=9999;n++){ int ge=n%10; int shi=n%100/10; int bai=n%1000/100; int qian=n/1000; int temp=ge*1

初学微信小程序开发—文件解析错误的解决办法

今天是我学习小程序第二天,当我正在调试新增页面时,发现这个错误: 提示为:文件解析错误  SyntaxError: Unexpected end of JSON input 一开始以为我用错标点符号之类的错误,后来百度发现,是因为这里面空的 解决办法非常简单,看图中步骤:找到即将跳转的路径,然后在左侧找到对应的文件(以本案例为例,找到weekly.json) 补上一个大括号就行了,也就是即将跳转的.json文件不能为空 第一次写博客,很新奇 原文地址:https://www.cnblogs.co

初学微信小程序 TodoList

微信小程序的学习 微信小程序的开始尝试 TodoList 微信开发者工具生成 目录如下: . |-- app.js |-- app.json |-- app.wxss |-- pages | |-- index # 主页 | | |-- index.js | | |-- index.json | | |-- index.wxml | | `-- index.wxss | `-- log # 日志页面 | | |-- log.js | | |-- log.json | | |-- log.wxml

初学微信小程序——配置问题

一.注册: 微信小程序账号注册:登录https://mp.weixin.qq.com  点击“立即注册”->”小程序” 注册完成后,下载微信小程序开发者工具: 依次点击:“首页”->“文档”->“工具”,页面中第一行有“微信开发者工具”,点击安装 点击安装 配置:打开微信开发者工具,点击左上角“设置”->”外观设置”,可以设置软件外观 比如,我把颜色设置为深色 二.Pages: 新建pages: 一键创建:在app.json中的“pages”中加上“pages/文件夹名称/文件名称

python--代码统计小程序

有人说,大学生在校期间要码够10W行代码,也有人说,看的不是写代码的行数,而是修改代码的行数... 不管谁说,说的人都挺牛的 咳,首先给自己定个小目标吧,5W行代码!成天写代码,啥时候到5W呢?为了更准确的衡量自己,写了一个代码统计行数的小程序,初学编程的可以借鉴下,从开始统计自己的代码行数 程序很简单,遍历代码文件的行数,将行数变量存放在本地文件中,可以在加个时间戳 1 #coding=gbk 2 import os 3 import time 4 5 seq = '' 6 n = 0 7 t

「微信小程序」有哪些冲击与机会?

昨天晚上相信大家的朋友圈被「微信小程序」刷屏了,这影响力赶上了国务院出台新政策一样,足以说明微信在中国的影响力之大.然后今天公号后台一大堆人问我怎么看这件事,不少人很忧虑,仿佛自己将要失业一样.好吧,满足你们,今天我来说下我的看法. 什么是微信小程序? 起初是公众号「小道消息」曝出微信推出很早就传言的「应用号」,不过是叫「小程序」.一时间被疯传,因为很多人错过了公众号一波红利,这次再也不愿错过「微信小程序」的机会了,所以这一次超级敏感,那么我先说下什么是小程序吧. 微信官方是这么解释的: 我们提

微信小程序实现地图插件的调用方法

目前很多微信小程序都具备地图查看的功能,那么对于在微信小程序中如何实现地图插件的调用方法,可能很多初学小程序开发的技术人员还存在很多疑问,那么下面就来跟大家详细解答一下. 首先肯定是借助小程序自带的map组件 .wxml代码: <map id="myMap" style="width: 100%; height: 300px;" latitude="{{latitude}}" longitude="{{longitude}}&qu