day15 python-03 列表,元组,字典
2017-06-08 19:51
639 查看
Python之路,Day3 = Python基础3
注:
extend: 拼接
enumerate:打印序号,返回两个值
模块的简单使用
sys模块
#!/usr/bin/env python #这句话的含义是,在linux上,默认以python执行该文件 # _*_ conding:utf-8 _*_ #这句的含义是,设置编码格式为utf_8 import sys #导入模块,模块名为 “sys” print(sys.argv) #调用模块中的argv,这个是方法吗?怎么没有括号? #当使用命令行cmd运行这个文件的时候,可以在命令行加入参数,这样可以获取参数,例如输入: python test.py 参数1 参数2 #得到的结果就是一个列表:['test.py', 'hello', 'word']
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import sys print(sys.path) #打印出python自有的环境变量的位置 #就是说,如果python需要import其它模块的时候,会从这里面搜索,如果没有,则提示找不到。通常自己在自定义模块的时候,可以把自己的模块放在这些路径下面,当然,也可以把自己写的模块的路劲添加进这个列表里面。
os模块
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import os os.system("dir .") #调用系统命令“dir .”,这里的 “.”是当前目录的意思。整个命令就是,调用系统cmd命令中的显示当前文件夹下的所有文件。
list相关应用
#列表的创建 #方法一 test_list = ["zhang", 1, "String"] #方法二 test_list = list(["zhang", 1, "String"]) #注:列表中可以嵌套列表 #如:test_list = ["zhang", 1, "String", ["zhang", 1, "String"]]
基本操作
test_list = ["zhang", 1, "String", "admin", "username", "password"]
- 索引--> test_list.index("zhang") #返回结果为 0 从左往右找到括号中的元素第一次出现位置的下标,如果不存在,则返回错误。有多个时候,只返回第一个。
- 切片--> test_list[1:5] #结果为 [1, "String", "admin", "username"] 将下标为 >=1 且 <5 的所有元素取出来作为新的列表,如果,左右数字不写,则默认为从头开始,到末尾结束。此方法可以跳着切片 test_index[1:5:2] 意思为,距离为2.
- 追加--> test_list.append("people") #将字符串"people"添加到test_list最后面 test_list.insert(1,"d") #将字符串"d",添加到下标为 1 的位置,其他内容顺序后移。
- test_list.extend(test_list) #将列表 test_list 本身添加到自己后面,这个方法通常用来将两个列表合并,括号中的列表,将会按顺序添加到前面列表的后面。
- 删除--> del test_list[0] #删除下标为0的元素 test_list.pop() #删除最后一个元素,若果括号中加入下标,则删除,该下标位置
- test_list.remove("admin") #从左往右,删除第一个遇到的该元素
- test_list.clear() #清空 test_list。
- 长度--> len(test_list) #返回列表 test_list 的长度
- 循环-->
test_list = ["zhang", 1, "String", "admin", "username", "password"] for i in test_list: print(i) #循环打印 test_list 中的所有元素
-
"zhang" in test_list #判断字符串 "zhang" 在 test_list 列表中,存在 True, 不存在 False
- 计数--> test_list.count("user") #查看 test_list 列表中包含几个 "user" 字符串
元组(不可变的列表)
test_tuple = ("a", "b", "c", "d") #赋值方法1 test_tuple = tuple(("a", "b", "c", "d")) #赋值方法2
字典(无序)
test_dict = {"name": "zhang", "gender": "male", "age": 23} test_dict = dict({"name": "zhang", "gender": "male", "age": 23})
- 索引
-
#!/usr/bin/env python # _*_ coding:utf-8 _*_ test_dict = {"name": "zhang", "gender": "male", "age": 23} print(test_dict["name"]) ==> zhang #打印出 "name"对应的 值
索引用test_dict["name"]的时候,如果不存在,则会出错,所有一个更好的选择:
test_dict.get("name") 这样的话如果没有,则返回None,有的话返回值
- 新增
-
#!/usr/bin/env python # _*_ coding:utf-8 _*_ test_dict = {"name": "zhang", "gender": "male", "age": 23} test_dict["salary"] = 3000 #添加新内容 "salary":3000, 如果 "salary" 已经存在,那么将修改它的值 print(test_dict)
dict1.update(dict2) 将dict2中不重复的元素添加到dict1中,如果存在,则将dict1中数值跟新进去
- 删除
test_dict = {"name": "zhang", "gender": "male", "age": 23} test_dict.clear() #清空 test_claer test_dict.pop("name") #删除 "name" 这一组数据; test_dict.popitem() #随机删除一组数据。
- 键、值、键值对
- 循环
test_dict = {"name": "zhang", "gender": "male", "age": 23} for k, v in test_dict.items(): print(k,v) """输出结果为 name zhang gender male age 23 """
- 长度
test_dict = {"name": "zhang", "gender": "male", "age": 23} print(len(test_dict)) ==> 3
字符串简单应用
test_String = " my name is bubblejia\n" print(test_String) #正常打印字符串,包括前面的空格和后面的换行 ==> my name is bubblejia ==> print(test_String.strip()) #去掉开头和结尾的空格及换行 ==>my name is bubblejia print(test_String.split()) #以空格(默认的)为分界,将字符串转为列表 ==>['my', 'name', 'is', 'bubblejia'] print(len(test_String)) #查看test_String长度 ==>22 print(test_String[:5]) #取test_String下标5之前的所有元素(不包含5) ==> my n print(test_String[5:]) #取test_String下标5之后的所有元素(包含5) ==>ame is bubblejia ==> print(test_String.index("n")) #从左往右,找到第一个 "n" 所在位置的下标 ==>4
copy简单应用
import copy a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用 c = copy.copy(a) #对象拷贝,浅拷贝,只拷贝第一层。 d = copy.deepcopy(a) #对象拷贝,深拷贝,拷贝所有层。
====================homework=====================
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "Always" # Date: 2017/6/8 """ 四、购物车 功能要求: 要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 附加:可充值、某商品移除购物车 goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] """ # ========= import time goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] shopping_list = [] # shopping_list = [ # {'name':'电脑', 'price':1999, 'count':4} # ] """ 打印购物清单 print(' M E N U\n序号 名称 \t 价格') for i, info in enumerate(goods, 1): print(" %s %s \t¥%s"%(i, info['name'], info['price'])) buy_number = input("请输入需要购买的商品序号:") """ while True: salary = input("请输如你的工资:") if salary.isdigit(): salary = int(salary) break while True: print(' M E N U\n序号 名称 \t 价格') for i, info in enumerate(goods, 1): print(" %s %s \t¥%s" % (i, info['name'], info['price'])) buy_number = input("请输入需要购买的商品序号:") if buy_number.isdigit() and int(buy_number) <= len(goods): # 如果输入的序号信息没有问题,那么就加入购物车 append_flag = False buy_number = int(buy_number) goods_name = goods[buy_number - 1]['name'] goods_price = goods[buy_number - 1]['price'] for i_list, info_list in enumerate(shopping_list): if goods_name in info_list['name']: shopping_list[i_list]['count'] += 1 append_flag = True break if not append_flag: shopping_list.append({'name':goods_name, 'price':goods_price, 'count':1}) print("%s已经加入了你的购物车。。"%goods_name) time.sleep(1) else: print('那啥,东西不存在。。。') time.sleep(1) # print(shopping_list) # 这个地方就用来打印是否继续购买,以及结算什么的 goahead_shopping = input("是否继续购买y/n:") if goahead_shopping == 'y': continue else: take_the_bill = input("是否结账y/n:") if take_the_bill == 'y': print('我要开始结账了') # shopping_list = [ # {'name': '电脑', 'price': 1999, 'count': 10} # ] while True: all_cost = 0 print(" 购物车列表\n 序号 名称\t 价格 \t 数量") for i, info_list in enumerate(shopping_list, 1): print(" %s %s \t ¥%s \t %s" % (i, info_list['name'], info_list['price'], info_list['count'])) all_cost += info_list['price'] * info_list['count'] print("合计:%s\n" % all_cost) input("回车键确定结账。。。") if salary >= all_cost: salary -= all_cost print("结算成功,共消费%s元,还剩余%s元。。。" % (all_cost, salary)) exit() else: deposit = input("钱不够,是否充值y/n:") # deposit 存款 if deposit == "y": print('我要开始存钱了。。。') deposit_number = input('你要存多少钱呢:') if deposit_number.isdigit(): salary += int(deposit_number) print('OK了,你现在一共有%s元。。。' % salary) time.sleep(1.2) elif deposit == 'q': break else: del_shopping_list = input('是否删除购物车的物品y/n:') if del_shopping_list == 'y': del_flag = True while del_flag: print('我要开始删除购物车的内容了。。。。') all_cost = 0 for i, info_list in enumerate(shopping_list, 1): print(" %s %s \t ¥%s \t %s" % ( i, info_list['name'], info_list['price'], info_list['count'])) all_cost += info_list['price'] * info_list['count'] print("合计:%s\n" % all_cost) del_choose = input('删除啥勒:') if del_choose.isdigit() and int(del_choose) <= len(shopping_list): del_choose = int(del_choose) if shopping_list[del_choose - 1]['count'] == 1: del_index = del_choose - 1 shopping_list.pop(del_index) else: shopping_list[del_choose - 1]['count'] -= 1 gohead_del = input('是否继续删除y/n:') if gohead_del != 'y': del_flag = False break elif del_shopping_list == 'q': exit('谢谢使用。。。') exit('谢谢使用。。。。') else: continuehomework-04
相关文章推荐
- day 15 变量赋值 列表 元组 字典
- Python进阶 03 元组/列表/字典 互转
- Python 学习笔记 -- 变量、元组、列表、字典和集合
- 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考
- Python 元组、列表、字典、文件
- Debian Linux下的Python学习——列表,元组和字典之元组
- python_20100901_元组列表字典的一点区别
- Dive Into Python 学习记录1-函数/模块导入/字典/列表/元组/字符串分割、连接、格式化/映射list/
- Python3基础知识(二)---- 元组、列表、字典、文件
- Python 元组、列表、字典、文件
- python列表、元组、字典、字符串操作
- Python学习笔记:列表,元组和字典
- python的元组、列表、字典
- python 中列表 元组 字典的区别
- python的列表,元组,字典,序列,字符串的简单解说
- 【Python】列表、字典和元组的排序
- Python学习--识别“字符串&字典&列表&元组“
- Python中数据结构 列表 元组 字典 序列
- Debian Linux下的Python学习——列表,元组和字典之列表
- Python元组、列表、字典、文件