初学pyhon的几个练习小程序

Posted lpob

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学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(不是查看菜单的命令)

 

以上是关于初学pyhon的几个练习小程序的主要内容,如果未能解决你的问题,请参考以下文章

Python的几个小程序,其实我觉得可以称作初学时的基础算法

python初学-列表和字典的几个小例子

教程:给初学的几个小例子(待补充)

使 PHP 代码更加简洁的几个小技巧

C++入门小程序练习

关于JavaScript算法的几个小练习--DonyZ