博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python列表和循环判断
阅读量:4921 次
发布时间:2019-06-11

本文共 3461 字,大约阅读时间需要 11 分钟。

列表和循环 __author__ = 'Yimtsao' # coding: UTF-8 list = [     ('iphone',8050),     ('mac pro',12000),     ('starbuck latte',31),     ('alex python',82),     ('bike',800), ]  #商品列表 gouwuche = [] #空的购物车 while True:     wage = input("请输入你现有的金额:")     if wage.isdigit():  #判断该字符串是否为数字         wage = int(wage) #将由数字组成的字符串定义为整数         while True:             for list_tmp in list:                 print (list.index(list_tmp),list_tmp) #循环打印出商品列表             num = input("选择你要买的商品编号:")             if num.isdigit():                     num = int(num)                     if num >= 0 and num < len(list):  #判断 输入的编号是否在商品列表编号范围内                         Articles = list[num]                         if wage >= Articles[1]: #判断余额是否够买商品                             wage-=Articles[1]   #购买商品后的余额                             gouwuche.append(Articles) #将购买的商品加入购物车                             print("你已经购买了%s,你现在的余额是%s"%(Articles,wage))                         else:                             print("你的余额不足,快去赚钱吧,你还有",wage)                     else:                         print("输出错误的商品编号,请重新选择")             else :                     if num == "q" : #输入为Q 打印余额和商品然后退出                         print("你的的购物车里有%s,你的余额为%s"%(gouwuche,wage))                         exit()                     else:                         print("你的输入是无效参数,请重新输入")     else:         if wage == "q":          exit()         else:             print("你的输入错误,请重试,若需退出请输入q") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 先附上丑陋的代码,这是利用这三天学到知识写的,主要功能实现 输入你的现金,循环打印出商品列表,按商品编号购物。任意环节按输入q可以退出,并打印余额和已经购买的商品。 在我编写时遇到的难点分两处: 第一,如果打印出商品列表,一开始我想用list = """   """然后再"""  """中间列表写出,但这样打印出的商品列表和我们的创建的列表就没有关联了,想要维护也很麻烦,所以这种愚蠢的想法是不可取的。 最后我采用for i in list 的循环打印,打印出列表元素和利用list.index()取小标来打印商品编号。第二的难点是怎么让输入的字符串,如果是数字就取整,如果不是数字就判断是不是q退出。这里我就利用了isdigit() 判断字符串是不是纯数字 是的话将该字符串换为整数,如果不是在判断是不是q退出。 这二点都做好了,其余的就是简单if判断后进行打印和运算下,缩进很重要,在写的时候因为缩进问题调试了好几次。 列表 列表是我们最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作。 定义列表 name=['Yimtsao','cnblogs','china'] name[0] Yimtsao name[1] cnblogs name[2] china 切片:取列表中多个元素 name[0:1] #列表中下标从0到1的元素,不包括最后一位 'Yimtsao' name[0:-1] #-1 表示最后一位 name[:2] #放空表示从第一位开始 name[0::2] #后面的2是代表,每隔一个元素,就取一个 追加
>>> name['Yimtsao', 'cnblogs']>>> name.append("new")>>> name['Yimtsao', 'cnblogs', 'new']

 插入

 

>>> name['Yimtsao', 'cnblogs']>>> name.insert(1,"new") 在下标为1的前面插入>>> name['Yimtsao', 'new', 'cnblogs']

 

修改

>>> name['Yimtsao', 'cnblogs']>>> name[1] = "new" 将下标为1的元素赋予新的值>>> name['Yimtsao', 'new']

删除

>>> del name[1]  删除下标1的元素>>> name['Yimtsao']name.remove("Yimtsao") 指定删除的元素['new']name.pop() 删除列表最后一个元素['Yimtsao',]

拓展

 

>>> name['Yimtsao', 'new']>>>b = ['a','b']>>>name.extend(b) 将b列表加入name里

 

拷贝

>>>name['Yimtsao', 'new','a','b']>>>name_cp = name.copy()>>>name_cp['Yimtsao', 'new','a','b']

统计

name.count("")统计列表元素的个数>>>name['Yimtsao', 'new','a','b','a']>>>name.count("a")2

排序&翻转

>>> name['YimTsao', 'cnblogs', 1, 2, 3]>>> name.sort() #排序Traceback (most recent call last):  File "
", line 1, in
TypeError: unorderable types: int() < str() #3.0里不同数据类型不能排序>>> name['YimTsao', 'cnblogs', '1','2','3']>>> name.sort()['1', '2', '3', 'YimTsao', 'cnblogs'] name.reverse()['3', '2', '1', 'cnblogs', 'YimTsao']

获取下标

>>>name['YimTsao', 'cnblogs','1','1','3']>>>print(name.index('1')) #只返回找到的第一个小标2

 

 

转载于:https://www.cnblogs.com/Yimtsao/p/7504202.html

你可能感兴趣的文章
DDD的思考
查看>>
类型转换及返回json对象的问题
查看>>
模拟题 找出不能拼凑的最小数
查看>>
ivew实现table的编辑保存追加删除
查看>>
poj 1904(强连通分量+输入输出外挂)
查看>>
Ubuntu重启关机命令使用
查看>>
第5章 不要让线程成为脱缰的野马(Keeping your Threads on Leash) ---干净的终止一个线程...
查看>>
shell $() vs ${}
查看>>
实现Serializable的类 的serialVersionUID的作用和生成
查看>>
PHP $_SERVER详解
查看>>
shell脚本大小写转换
查看>>
hdu4699-Editor
查看>>
正则小全
查看>>
Nginx二级目录自动加斜杠
查看>>
iOS开发技巧——关闭Autoresizing开启Autolayout
查看>>
JSP学习笔记(4)-Javabean
查看>>
乐观锁和悲观锁的区别
查看>>
搜索引擎算法研究专题二:HITS算法及其衍生算法分析
查看>>
C语言 内存四大存储区域
查看>>
浏览器兼容性
查看>>