python 基础应用5-简单购物车
1、列表去重
#列表去重
li = [1,2,33,33,2,1,4,5,6,6]
set1 = set(li)# 转为集合
li = list(set1)# 转为列表
print(li)#[1, 2, 33, 4, 5, 6]
2、删除所含输入字母或数字的键值对
#删除所含输入字母或数字的键值对
dic = {'k1':1,'k2':2,'j1':3,'j2':4}
l = []
print(dic)
s = input('输入所需删键值对中所含字母或数字:')
for i in dic:
if s in i:
l.append(i)
for i in l:
dic.pop(i) # 或 del dic[i]
print(dic)
#输入所需删键值对中所含字母或数字:1
#{'k2': 2, 'j2': 4}
3、修改文件
with open ('雪花','r',encoding = 'utf-8') as f,open ('雪花.bak','w',encoding = 'utf-8') as f1:
for line in f:
if '大白' in line:
line = line.replace('大白','dabai')
f1.write(line)
import os
os.remove('雪花')
os.replace('雪花.bak','雪花')

4、完整购物车
username = input('请输入注册账号:')
password = input('请输入注册密码:')
with open('C:\\Users\\Administrator\\Desktop\\Python\\t.txt', mode='w+', encoding='utf-8') as f:
f.write("{}\n{}".format(username,password))
print('恭喜你注册成功!')
list = []
i = 0
while i <3:
u_of_you = input("请输入您的账号:")
p_of_you = input('请输入您的密码:')
with open('C:\\Users\\Administrator\\Desktop\\Python\\t.txt', mode='r+', encoding='utf-8') as f:
for line in f:
list.append(line)
if u_of_you ==list[0].strip() and p_of_you==list[1].strip():
print('登录成功!')
# 购物车
li = [{'name': '手机', 'price': ''},
{'name': '平板', 'price': ''},
{'name': '电视', 'price': ''},
{'name': '电脑', 'price': ''},
]
money_of_you = input('请输入您拥有的金额:')
surplus = money_of_you
shopping_car = {}
while 1:
if money_of_you.isdigit() and int(money_of_you) > 0:
for i, j in enumerate(li):
print('序号{},名称{},价格{}'.format(i, li[i]['name'], li[i]['price']))
choose = input('请输入想购买的序号(若退出直接回车):')
if choose.isdigit() and int(choose) < len(li) and int(choose) >= 0:
num = input('需要购买的数量:')
if num.isdigit() and int(num) > 0:
if int(surplus) > int(li[int(choose)]['price']) * int(num):
surplus = int(surplus) - int(li[int(choose)]['price']) * int(num) # 剩余金额
if li[int(choose)]['name'] in shopping_car: # 将相同的放一起
shopping_car[li[int(choose)]['name']] = shopping_car[li[int(choose)]['name']] + int(num)
else:
shopping_car[li[int(choose)]['name']] = int(num)
print('亲爱的{}用户,您购物车商品有{},剩余金额为{}'.format(u_of_you,shopping_car, surplus))
else:
print('余额不足!')
print('亲爱的{}用户,您购物车商品有{},剩余金额为{}'.format(u_of_you,shopping_car, surplus))
break
else:
print('输入数量有误,请重新输入。')
continue
elif choose == '':
print('亲爱的{}用户,您购物车商品有{},剩余金额为{}'.format(u_of_you,shopping_car, surplus))
break
else:
print('购物车中未有您输入的序号,请重新输入:')
continue
else:
print('您输入不是金额,请重新输入:')
continue
else:
print('输入错误')
i += 1
python 基础应用5-简单购物车的更多相关文章
- Python基础简介与简单使用
Python介绍 Python发展史 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器.Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flyi ...
- 计算机基础,Python基础--变量以及简单的循环
一.计算机基础 1.CPU 相当于人体的大脑,用于计算处理数据. 2.内存 用于存储数据,CPU从内存调用数据处理计算,运算速度很快. PS:问:既然在内存里的数据CPU运算速度快,为什么计算机不全 ...
- Python基础——爬虫以及简单的数据分析
目标:使用Python编写爬虫,获取链家青岛站的房产信息,然后对爬取的房产信息进行分析. 环境:win10+python3.8+pycharm Python库: import requests imp ...
- python基础入门学习简单程序练习
1.简单的乘法程序 i = 256*256 print('The value of i is', i) 运行结果: The value of i is 65536 2.执行python脚本的两种方式 ...
- 第2章 Python基础-字符编码&数据类型 购物车&多级菜单 作业
作业 一.三级菜单 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, ...
- python实际练习1——简单购物车
要求实现 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 自己写的代码是 ...
- python基础-----变量和简单数据类型
初识变量 1.变量命名规则: a.字母 b.数字(不能开头) c.下划线 ps.硬性规定,命名必须是字母,数字,下划线,且不能以数字开头. 软性规则,以下划线分割 2.实例: a.写法: age_of ...
- Python基础(四) socket简单通讯
socket:我们通常听过的套接字: 服务端: 1.创建socket对象 2.bing 绑定ip及端口 3.对该端口进行监听 4.消息阻塞(等待客户端消息) 客户端: 1.创建socket对象 2.连 ...
- python实现简单购物车系统(练习)
#!Anaconda/anaconda/python #coding: utf-8 #列表练习,实现简单购物车系统 product_lists = [('iphone',5000), ('comput ...
随机推荐
- kafka高吞吐量之消息压缩
背景 保证kafka高吞吐量的另外一大利器就是消息压缩.就像上图中的压缩饼干. 压缩即空间换时间,通过空间的压缩带来速度的提升,即通过少量的cpu消耗来减少磁盘和网络传输的io. 消息压缩模型 消息格 ...
- ES6新增的 Set 和 WeakSet 是什么玩意?在此揭晓
现在的章节内容会更加的紧密,如果大家看不懂可以先去看以前的文章,当然看了的忘了,也可以去看一下,这样学习后面的内容才会更加容易. 什么是Set结构 Set是ES6给开发者带来的一种新的数据结构,你可以 ...
- GOLANG 闭包和普通函数的区别
闭包和匿名函数是一回事 闭包使用完毕之后不会自动释放,值依然存在 普通函数调用完毕后,值会自动释放
- 2019-2020-1 20199308《Linux内核原理与分析》第一周作业
Linux 基础入门(新版)学习笔记 实验二 基本概念及操作 重要快捷键 Tab 补全命令 Ctrl+c 强行终止当前命令 历史命令 方向上键↑,恢复之前输入过的命令 通配符 在命令行中获取帮助 某个 ...
- Spring boot 自定义banner
Spring Boot启动的时候会在命令行生成一个banner,其实这个banner是可以自己修改的,本文将会将会讲解如何修改这个banner. 首先我们需要将banner保存到一个文件中,网上有很多 ...
- 【高并发】又一个朋友面试栽在了Thread类的stop()方法和interrupt()方法上!
写在前面 新一轮的面试已经过去,可能是疫情的原因吧,很多童鞋纷纷留言说今年的面试题难度又提高了,尤其是对并发编程的知识.我细想了下,也许有那么点疫情的原因吧,但无论面试的套路怎么变,只要掌握了核心知识 ...
- 从实践出发:微服务布道师告诉你Spring Cloud与Boot他如何选择
背景 随着公司业务量的飞速发展,平台面临的挑战已经远远大于业务,需求量不断增加,技术人员数量增加,面临的复杂度也大大增加.在这个背景下,平台的技术架构也完成了从传统的单体应用到微服务化的演进. 系统架 ...
- Java ArrayList工作原理及实现
http://yikun.github.io/2015/04/04/Java-ArrayList%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%8F%8A%E5%AE% ...
- 数学--数论--HDU 5223 - GCD
Describtion In mathematics, the greatest common divisor (gcd) of two or more integers, when at least ...
- P2024 食物链(种类并查集)
P2024 [NOI2001]食物链 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动 ...