python列表和循环判断

列表和循环

__author__ = ‘Yimtsao‘# coding: UTF-8list = [    (‘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] Yimtsaoname[1]cnblogsname[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 "<stdin>", line 1, in <module>
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


时间: 2024-07-30 13:44:24

python列表和循环判断的相关文章

python练习题:循环打印嵌套列表

好久没写博文了,添加一个练习题,选自<head_first_python>~~ python列表:以中括号开始和结束"[]":列表项以逗号","分隔开,使用赋值操作符"="赋予一个标识符.如: movies=["the holy",1975,"terry jones",91,["graham",["michael","john",&qu

python列表的遍历与循环

在游戏中,可能需要将每个界面元素平移相同的距离: 对于包含数字的列表,可能需要对每个元素执行相同的统计运算: 在网站中,可能需要显示文章列表中的每个标题. 经常需要遍历列表的所有元素,对每个元素执行相同的操作. 需要对列表中的每个元素都执行相同的操作时,可使用Python中的for循环. 遍历整个列表 假设有一个魔术师名单,需要将其中每个魔术师的名字都打印出来.为此,可以分别获取名单中的每个名字,但这种做法会导致多个问题. 例如,如果名单很长,将包含大量重复的代码. 另外,每当名单的长度发生变化

Python条件循环判断

1.条件判断语句 Python中条件选择语句的关键字为:if .elif .else这三个.其基本形式如下: 1 2 3 4 5 6 7 8 9 age_of_cc = 27 age = int(input("guessage:")) if age == age_of_cc:     print("Yes,you got it!") elif age > age_of_cc:     print("猜大啦!") else:     prin

python基础之循环结构以及列表

python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成开发环境(IDE,Integrated Development Environment ) 常用的编程语言IDE开发工具有如下一些: VIM #经典的linux下的文本编辑器 Emacs #linux 文本编辑器, 比vim更容易使用 Eclipse # Java IDE,支持python, c ,

python基础知识--条件判断和循环

一.输入输出 python怎么来接收用户输入呢,使用input函数,python2中使用raw_input,接收的是一个字符串,输出呢,第一个程序已经写的使用print,代码入下: 1 name=input('Please enter your name:') #把接收到的值赋给name变量 2 print(name)#输出接收到的输入 input在接收输入的时候,是可以看到你输入的值的,如果是输入密码这样的呢,不想让别人看到你的密码,怎么办呢,就需要用到一个标准库,getpass,什么是标准库

python 列表推导式----轻量级循环

列表推导式(list comprehension)是利用其他列表创建新列表(类似于数学术语中的集合推导式)的一种方法.它的工作方式类似于for循环,也很简单: In [39]: [x*x for x in range(10)]Out[39]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 如果只想打印出那些能被3整除的平方数,只需要通过添加一个if部分在推导式中就可以完成: In [41]: [x*x for x in xrange(10) if x % 3 == 0

Python(36)_循环打印列表中的列表

#-*-coding:utf-8-*- ''' 打印列表,遇到列表中的列表也循环打印 ''' li = [1,2,3,[1,2,3,5,6],'hjaha'] lie = [] #print(type(li[0])) #print(type(li)) for i in li: if type(i) != type(li): print(i) else: for j in i: print(j) 原文地址:https://www.cnblogs.com/sunnybowen/p/10205106.

python列表生成式&amp;生成器&amp;迭代器

一.列表生成式 什么是列表生成式? 列表生成式是快速生成列表的一种方式.(貌似有些废话) 更专业点的说法:列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 在python2.7里 举个例子,要生成list [1,2,3,4,5],可以用range(1,6) >>> range(1,6) [1, 2, 3, 4, 5] 但是如果要生成[1x1,2x2,3x3,4x4,5x5]怎么做呢? 普通青年做法: >>&

Python列表、元组、字典和字符串的常用函数

Python列表.元组.字典和字符串的常用函数 列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中包含3个元组),相当于ls和object合并.注意:object如果是整型,必须以列表的方式传入,不可以以整型或元组的方式传入 2.ls.append(object) 将object作为一个整体插入到ls最后,object可以是字符串,元组,列表和字典 3.ls.insert(index, object