#!/usr/bin/env python
# -*- coding:utf-8 -*- # 1.列举你常见的内置函数。
"""
强制转换:int() / str() / list() / dict() / tuple() / set() / bool()
数学相关:sum() / max() / min() / divmod() / float() / abs()
输入输出:input() / print()
其他:len() / open() / type() / id() / range()
""" # 2.列举你常见的内置模块?
'''
json / getpass / os / sys / random / hashlib / copy / shutil / time
''' # 3.json序列化时,如何保留中文?
'''
import json
a = '你好'
s = json.dumps(a,ensure_ascii=False)
print(s)
'''
# 4.程序设计:用户管理系统
# 功能:
# 1.用户注册,提示用户输入用户名和密码,然后获取当前注册时间,最后将用户名、密码、注册时间写入到文件。
# 2.用户登录,只有三次错误机会,一旦错误则冻结账户(下次启动也无法登录,提示:用户已经冻结)。 """
from datetime import datetime
import os USER = {} def user():
'''
注册用户
:return:
'''
username = input('注册用户名:')
with open('4用户注册.txt', 'r', encoding='utf-8') as f:
for line in f:
if line.split('_')[0].strip() == username:
return '帐户已存在!'
pwd = input('密码:')
sj = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
msg = '_'.join([username, pwd, sj, True])
with open('4用户注册.txt', 'a', encoding='utf-8') as f:
f.write(msg + '\n')
return '注册成功!' def login():
'''
登陆
:return:
'''
while 1:
username = input('用户名:')
with open('4用户注册.txt', 'r', encoding='utf-8') as f2:
status = False
for line in f2:
if line.split('_')[0] == username:
if line.split('_')[-1].strip() == 'False':
return '帐户已锁定!'
status = True
break if not status:
return '用户不存在!'
pwd = input('密码:')
with open('4用户注册.txt', 'r', encoding='utf-8') as f:
for line in f:
if line.split('_')[0] == username and line.split('_')[1] == pwd:
USER[username] = 0
return '登陆成功'
if USER.get(username) == None:
USER[username] = 0
if USER[username] < 3:
USER[username] += 1
if not USER[username] < 3:
with open('4用户注册.txt', 'r', encoding='utf-8') as f1,open('4用户注册(改).txt', 'w', encoding='utf-8') as f2:
for line in f1:
if line.split('_')[0] == username:
new_line = line.replace('True', 'False')
f2.write(new_line)
else:
f2.write(line)
os.remove('4用户注册.txt')
os.rename('4用户注册(改).txt', '4用户注册.txt')
return '输入错误超过3次,锁定账号!'
print('登录失败请重试!')
print(user())
print(login())
""" # 5.有如下文件,请通过分页的形式将数据展示出来。【文件非常小】
# 商品|价格
# 飞机|1000
# 大炮|2000
# 迫击炮|1000
# 手枪|123
# ... '''
def func():
f = open('5-6商品列表.txt', 'r', encoding='utf-8')
a = f.read() # 全部读到内存
lst = a.split('\n')
max_page, mowei = divmod(len(lst), 3) # 最大页,最后一页条数(总条数,每页条数)
if mowei > 0:
max_page += 1
while 1:
user = input('要查看第几页(N/n退出):')
if user.upper() == 'N':
return
if not user.isnumeric() or int(user) not in range(1, max_page+1):
print('输入有误!请重新输入!')
continue
start = (int(user)-1)*3
end = (int(user))*3
data = lst[start+1:end+1]
print(lst[0])
for i in data:
print(i.strip())
if not (int(user)>max_page or int(user)<1):
print('当前第%s页,共%s页.' % (user,max_page)) func()
''' # 6.有如下文件,请通过分页的形式将数据展示出来。【文件非常大】 # 商品|价格
# 飞机|1000
# 大炮|2000
# 迫击炮|1000
# 手枪|123 """
def func():
f = open('5-6商品列表.txt', 'r', encoding='utf-8')
a = f.readlines() # 所有行组成一个列表
print(a)
max_page, mowei = divmod(len(a), 3) # 最大页,最后一页条数(总条数,每页条数)
if mowei > 0:
max_page += 1
while 1:
user = input('要查看第几页(N/n退出):')
if user.upper() == 'N':
return
if not user.isnumeric() or int(user) not in range(1, max_page+1):
print('输入有误!请重新输入!')
continue
start = (int(user)-1)*3
end = (int(user))*3
data = a[start+1:end+1]
print(a[0].strip())
for i in data:
print(i.strip())
if not (int(user)>max_page or int(user)<1):
print('当前第%s页,共%s页.' % (user,max_page)) func()
""" # 7.程序设计:购物车
# 有如下商品列表 GOODS_LIST,用户可以选择进行购买商品并加入到购物车 SHOPPING_CAR 中且可以选择要购买数量,购买完成之后将购买的所
# 有商品写入到文件中【文件格式为:年_月_日.txt】。
# 注意:重复购买同一件商品时,只更改购物车中的数量。
"""
SHOPPING_CAR = {} # 购物车 GOODS_LIST = [
{'id': 1, 'title': '飞机', 'price': 1000},
{'id': 3, 'title': '大炮', 'price': 1000},
{'id': 8, 'title': '迫击炮', 'price': 1000},
{'id': 9, 'title': '手枪', 'price': 1000},
] # 商品列表
from datetime import datetime def shopping():
while 1:
for i in GOODS_LIST:
print('序号:' + str(i['id']) + ' 商品:' + i['title'] + ' 价格:' + str(i['price']))
user = input('请输入序号加入到购物车(N/n退出):')
if user.upper() == 'N':
return '退出'
pand = False
for j in GOODS_LIST:
if int(user) == j['id']:
pand = True
if SHOPPING_CAR.get(j['title']) == None:
SHOPPING_CAR[j['title']] = 0
break
if not pand:
print('输入错误!')
continue
while 1:
count = input('请选择数量:')
if not count.isdigit():
print('请输入阿拉伯数字!')
continue
SHOPPING_CAR[j['title']] += int(count)
date = datetime.now().strftime('%Y_%m_%d')
with open("%s.txt" % date, 'w', encoding='utf-8') as f:
f.write(str(SHOPPING_CAR))
break print('已添加进购物车!')
print(SHOPPING_CAR) a = shopping()
print(a)
"""

day16,模块 , 用户管理系统 , 购物车程序 , 分页显示.的更多相关文章

  1. 微信小程序分页显示

    <view class="tabNav"> <view wx:for="{{navTab}}" wx:key="index" ...

  2. JDBC MySQL 实例之 用户管理系统

    1 Java 和 MySQL 怎么建立连接 2 通过Java怎么对数据库进行操作 package day01; import java.sql.Connection; import java.sql. ...

  3. Django项目:CRM(客户关系管理系统)--19--11PerfectCRM实现King_admin分页显示条数

    登陆密码设置参考 http://www.cnblogs.com/ujq3/p/8553784.html list_per_page = 2 #分页条数 list_per_page = 2 #分页条数 ...

  4. 【京东账户】——Mysql/PHP/Ajax爬坑之购物车列表分页

    一.引言 做京东账户项目中的购物车模块,功能之四就是购物车列表的分页显示.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.查询数据 mysql: SELECT * FROM jd_pr ...

  5. 从头开始编写一个Orchard网上商店模块(6) - 创建购物车服务和控制器

    原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-pa ...

  6. 利用JSP编程技术实现一个简单的购物车程序

    实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...

  7. python用户管理系统

    学Python这么久了,第一次写一个这么多的代码(我承认只有300多行,重复的代码挺多的,我承认我确实垃圾),但是也挺不容易的 自定义函数+装饰器,每一个模块写的一个函数 很多地方能用装饰器(逻辑跟不 ...

  8. python小练习之三---购物车程序

    购物车购物的例子 严格来讲,这个例子相对大一些 功能也稍完备一些,具有用户登录,商品上架,用户购物,放入购物车,展示每个用户的购物车里的商品的数量,用户账户余额,支持用户账户充值等 下面展示的代码有些 ...

  9. python复习购物车程序

    个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...

随机推荐

  1. 分布式缓存Redis集群配置使用

    Redis 简介          redis是一种开源的.基于内存的.可持久化的.高性能的Key-Value数据存储系统. redis能做什么? 持久化存储  高速缓存 消息中间件         ...

  2. zabbix监控交换机状态

    1.在Zabbix中添加主机 输入名称.群组和交换机IP(交换机要开启snmp) 2.创建监控项 输入OID和其它信息(键值随便填,但是不能和系统内的键值重复)OID获取方法可查看上一篇文章:http ...

  3. 【夯实shell基础】shell基础面面观

    本文地址 点击关注微信公众号 wenyuqinghuai 分享提纲: 1. shell中的函数 2. shell中的数组 3. shell中的变量 4. shell中的运算符 5. Linux的一些命 ...

  4. dicom错误解决

    https://github.com/pydicom/pydicom/issues/331 sudo apt-get install python-gdcm

  5. 好的RESTful API的设计原则

    转载自一位大佬 英文原版 Principles of good RESTful API Design Good API design is hard! An API represents a cont ...

  6. ASP.NET Core 2.2 十九. Action参数的映射与模型绑定

    前文说道了Action的激活,这里有个关键的操作就是Action参数的映射与模型绑定,这里即涉及到简单的string.int等类型,也包含Json等复杂类型,本文详细分享一下这一过程.(ASP.NET ...

  7. PHP按权重随机

    之前业务部门提了一个需求,要求将广告按照ecpm高低进行随机.(即:ecpm高的获取流量的几率大) 如下数组: //要求AD1的概率要求为50%,AD2概率为25% ,AD3的概率为15%,AD4的概 ...

  8. 菜鸟学IT之python网页爬取多页爬取

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3002 0.从新闻url获取点击次数,并整理成函数 newsUrl news ...

  9. Bayes factor

     bayes因子为什么一定要除以先验机会比,如果是想用样本的作用,来判断支持原来的假设θ_0,H_0的力度,直接用后验概率比不就好了吗?   左边等于右边

  10. 失去焦点布局在ios12-微信6.7.0版本以上不回滚的解决方案

    微信页面input获取焦点,布局上移,失去焦点布局在ios12-微信6.7.0版本以上不回滚的解决方案: setTimeout(function(){ let scrollHeight = docum ...