使用列表函数写一个“购物车”小程序:

#!/user/bin env python
# author:Simple-Sir
# 20180908
'''
需求:
1、启动程序后,让用户输入工资,然后打印商品列表
2、允许用户根据商品编号购买商品
3、用户选着商品后,检测余额是否够,够就直接扣款,不够就提醒
4、可随时退出,退出时,打印已购买商品和余额
'''
#定义商品
shangping = [
['1','苹果','10'],
['2','香蕉','20'],
['3','芒果','30'],
['4','西瓜','40'],
['5','葡萄','50'],
['6','榴莲','60']
]
shangping_total = int(shangping[-1][0]) #取最后一个商品的编号
input_money = int(input('请输入您的预算:')) #预算金额
balance = input_money #余额
shangping_kx=[] #可选商品
yx_sp = [] #已选购商品
yx_sp_money = 0 #已选购商品总价
while balance >= int(shangping[0][2]):
for i in range(0,shangping_total):
if balance >= int(shangping[i][2]):
shangping_kx.append(shangping[i])
else:
continue
print('您可选购以下商品:')
for j in shangping_kx:
print(j)
sp_no = input('请输入您想选购的商品编码:')
yx_sp.append(shangping_kx[int(sp_no)-1])
dq_xg_money = 0
dq_xg_money = shangping_kx[int(sp_no)-1][2]
yx_sp_money = int(yx_sp_money) + int(dq_xg_money)
print('您已选购以下商品:')
for k in yx_sp:
print(k)
print('您当前已选购商品总价为:',yx_sp_money,'元')
balance = balance - int(dq_xg_money)
print('你当前余额为:',balance,'元')
shangping_kx.clear()
if balance > 0 :
is_continue = input('您是否还要继续选购商品?(Y/N)')
if str.upper(is_continue) != 'Y':
print('欢迎您下次光临!')
exit()
else:
print('您当前余额已不足,请充值后再选购!')

购物车小程序

列表知识点:

#!/user/bin env python
# author:Simple-Sir
# 20180908
# 列表测试 # names = ["lzh1","lzh2",["lhy1","lhy2"],"lzh4","lzh3","lzh4"]
# print(len(names))
# names.append("lzh_add") #添加,追加至最后位置
# names.insert(1,"lzh2_add") #插入,插入到指定位置
# names[2] ="lzh_update" #修改
# names.remove("lzh3") #删除指定值
# del names[0] #删除指定位置值
# names.pop(0) #删除指定位置值,默认删除最后一个值
# print(names.index("lzh4")) #查找指定值的位置
# print(names[names.index("lzh4")]) #通过位置查找值
# print(names.count("lzh4")) #统计指定值数量
# names.clear() #清空列表
# names.sort(reverse=True) # 对列表进行排序,reverse=True 从大到小,反之,从小到大
# names.reverse() #将列表值反转
# print(names)
# names2 = [1,2,3,4]
# names.extend(names2) #合并
# del names2 #删除合并值
# names2 = names.copy() #复制names,实际复制内存地址
# import copy
# names2 = copy.deepcopy(names) # 深copy,完全复制 # names[0] = "列表1"
# names[2][0] = "列表1" #列表中含有列表,浅copy,只复制第一层 -->name,names2 一起更改 # 列表循环
# for i in names:
# print(i) # print(names[0:3:2]) #间隔2个值,切片 类似:range(0:3:2)
# print(names[1:3]) #切片:包括起始位置,不包含结束位置“顾头不顾尾”
# print(names[-1]) # 取最后一个值
# print(names[-2:]) #取最后2个值
# print(names[:2]) #取前2个 等价于 print(names[0:2])
# print(names[:]) #取所有值 '''
#浅copy:
import copy
person = ['name',['saving',100]]
p1 = person[:] #将person的值复制给p1
p2 = person[:] #将person的值复制给p2 p1[0] = 'lzh' #修改name的值,只有p1变(外层)
p2[0] = 'lhy' #修改name的值,只有p2变(外层) p1[1][1] = '50' #修改100的值,p1、p2都变(内层)
print(p1)
print(p2)
''' '''
# 元组
names = ('lzh','lhy')
print(names.count('lzh')) #统计指定值数量
print(names.index('lhy')) #查找指定值对应的位置
'''
# 列表转字符串
li = ['11','sf','das']
print(''.join(li))

列表常用操作

初识python: 列表(list)的更多相关文章

  1. 【head first python】1.初识python 人人都爱列表

    #coding:utf-8 #创建简单的python列表 movies = ["The Holy Grail", "The Life of Brain", &q ...

  2. 初识python 字符串 列表 字典相关操作

    python基础(一): 运算符: 算术运算: 除了基本的+ - * / 以外,还需要知道 :  // 为取整除 返回的市商的整数部分 例如: 9 // 2  ---> 4  , 9.0 //  ...

  3. @1-2初识Python爬虫

    初识Python爬虫 Python爬虫(入门+进阶)     DC学院 环境搭建: Python2与Python3的差异:python2与python3整体差异不大,大多是一些语法上的区别,考虑到py ...

  4. 初识python(二)

    初识python(二) 1.变量 变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用. 1.1 声明变量: #!/usr/bin/env python # -*- coding: utf- ...

  5. 孤荷凌寒自学python第三十八天初识python的线程控制

     孤荷凌寒自学python第三十八天初识python的线程控制 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.线程 在操作系统中存在着很多的可执行的应用程序,每个应用程序启动后,就可以看 ...

  6. 孤荷凌寒自学python第二十一天初识python的类

    孤荷凌寒自学python第二十一天初识python的类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 类是面向对象的编程语言非常重要的概念. 编程语言的进化史中从顺序编程到结构化编程,最后才 ...

  7. 孤荷凌寒自学python第十七天初识Python的函数

    孤荷凌寒自学python第十七天初识Python的函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 函数是能够完成指定运算并返回运算结果的代码块.是结构化编程重要的结构. 我首先发现pyt ...

  8. 孤荷凌寒自学python第十一天初识Python的字典类

    孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...

  9. Python列表、集合与字典(3)

    目录 一.列表 二.集合 三.字典 一.列表 1. 列表初识   列表的使用为处理特定顺序排列的数据提供了便利,列表元素可以是字母.数字或者其他信息,同时所加元素之间不存在任何关系.   在Pytho ...

  10. 《初识Python之认识常量type函数》

    <初识Python之认识常量type函数> 1.2 认识常量 1.常量:我们用的就是它字面意义上的值或内容. 2.数字(Number) (1)整数表示:97. (2)浮点数表示:5.29 ...

随机推荐

  1. windows 查看端口被占用,解除占用

    查看 (列举端口为2688) netstat -ano | findstr "2688" 解除 原文地址

  2. ubuntu qq/微信

    Ubuntu qq&微信安装/启动脚本. Docker 本脚本依赖Docker,需要提前安装好Docker环境.参考https://yeasy.gitbooks.io/docker_pract ...

  3. uni-app使用腾讯地图注意点

    地图map组件使用腾讯地图自定义样式: 1:在使用地图map组件腾讯地图时,获取本地定位,经纬度转地址与地址转经纬度解析时,小程序可以直接使用.但是h5版本会报跨域问题,目前前端没有找到更好的解决方法 ...

  4. 【C++】使用VS2022开发可以在线远程编译部署的C++程序

    前言: 今天没有前言. 一.先来一点C++的资源分享,意思一下. 1.c++类库源码以及其他有关资源.站点是英文的,英文不好的话可以谷歌浏览器在线翻译.http://www.cplusplus.com ...

  5. 转:ios delegate

    首先,大家应该都明白的是委托是协议的一种,顾名思义,就是委托他人帮自己去做什么事.也就是当自己做什么事情不方便的时候,就可以建立一个委托,这样就可以委托他人帮自己去实现什么方法. 其次,我简单的总结了 ...

  6. Visual SVN安装使用教程

    visual svn使用教程  SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. ...

  7. Eclipse切换不同版本的jdk

    var会在java1.8中报错,安装10版本以上的jdk可以解决问题,但是安装后Eclipse无法正常工作,后来发现是Eclipse没有切换版本,在网上找了好多教程都是切换系统变量,后来我发现可以直接 ...

  8. CF748A Santa Claus and a Place in a Class 题解

    Content 圣诞老人坐在一个桌子被摆成 \(m\) 行 \(n\) 列的教室里.每个桌子有两个座位,每个位置从左往右都有编号,依次为 \(1,2,3,...,2\times n\times m\) ...

  9. CF23A You're Given a String... 题解

    Content 给定一个长度为 \(n\) 的字符串,求出至少出现两次的最长子串的长度. 数据范围:\(1\leqslant n\leqslant 100\). Solution 我们直接暴力求出每个 ...

  10. 复杂SQL案例:用户授权渠道查询

    供参考: SELECT r.course_id 课程id, r.user_id 用户ID, u.user_full_name 姓名, u.province_name 省名, u.city_name 城 ...