• Py修行路 python基础 (三)字典


    names=["zhang"]
    names2=["jack","jie"]
    names.clear()
    print(names) #清空整个列表

    names.extend(names2) #扩展将两个列表合并一个列表,原列表还在
    print(names)

    names.reverse() #反转
    names.sort() #排序,根据ASCII码

    name = "aaa"
    id(name) 查看内存值
    *.strip() 删除字符串 边上的(开头或结尾)的字符序列,默认是空格,删除什么可在括号中添加

    flag 旗帜,标志位

    操作颜色 33[31;1m 加颜色的位置(代码) 33[0m      

    注意有开始有结束,没结束会从开始位到最后整个标记上颜色!

    字典
    key : value 键:值对

    键 key必须唯一,字典是无序的!

    names = {k1:v1……} 内容可以嵌套,也是列表,也可以是字典。
    查:
    print(names[key]) print(names[key]["name"])
    改:
    names[111][0] = "qinzhen"
    names[111].append(28)
    names[222] = "mike"插入

    删除:
    names.pop(k) k=key值
    names.pop(1111111,None)
    删除指定的key,若键值不存在,则输出None
    names.popitem() 随机删除
    del names[k] k=key值


    print(names)所有
    print(names[112])输出一个
    print(names.get(112))有就获取值,没有就返回None

    in 判断是否在字典里有这个key
    print(113 in names)

    loop循环
    for i in names: 默认取key
    print(i,names[i])

    for k ,v in names.items(): #效率低,不要用
    print(i)
    names.keys() 列出所有的key值,放到一个列表中
    names.value() 列出所有的value值,放到一个列表中

    两个字典合并,成一个字典,原字典没有的添加,原字典有的会更新,以 k key值为标志位来判定。
    names.update()


    作业1: 购物车程序优化

    前提
    自己完全默写出来

    1. 用户退出时打印商品列表时,按以下格式
    -------您购买的商品如下------
    id 商品 数量 单价 总价
    1 iPhone 2 5800 11400
    2 coffee 1 30 30
    。。。

    总计价格: 11430元
    --------end -------------

     代码如下:

    #!usr/bin/env python
    # _*_ coding:utf-8 _*_
    product_list = [['Iphone7',5800], #商品列表
    ['Coffee',30],
    ['疙瘩汤',10],
    ['Book',99],
    ['Bike',199],
    ['ViVo X9',2499],
    ]

    shopping_car ={} #购物车!!! #格式{“商品”:[价格,数量]}字典
    salary = int(input("请输入您的工资:")) #输入工资
    #主函数
    while True:
    count = 0 #定义一个标志位
    print("---------------")
    print("序号 商品 价格")
    for product in product_list: #商品列表循环
    print("%s %s %s"
    %(count+1, #序号
    product[0] , #商品
    product[1])) #商品价格
    count += 1 #计数自加一
    print("---------------")
    choice = input("请输入你的选择:").strip() #输入,判断边上有没有空格,有的话删除
    if choice.isdigit():#判断输入的字符串 是否是数字!
    choice=int(choice) # 是数字的话,整型成数字!
    if choice >= 1 and choice < len(product_list)+1: #判断输入的数字时候在商品序列之内,在之内向下执行
    product = product_list[choice-1] #选择的商品
    if product[1] < salary: #判断 比较 商品的价格和输入的工资,小于工资的话来向下执行
    if product[0] in shopping_car: #判断所选取的商品在不在购物车中。如果在的话
    shopping_car[product[0]][1] += 1 #该商品数量加一
    else: #如果不在购物车中
    shopping_car[product[0]] = [product[1],1] #该商品数量为一
    salary -= product[1] #选完商品之后,剩余的钱!
    print("您放在购物车的商品是" + product[0] + "您还剩下" + str(salary))
    else: #工资小于商品的价格
    print("对不起,你买不起!产品价格是:" + str(product[1]) + "你还差" + str(product[1]-salary) +"元钱!" )
    else: #输入的数字大于商品的序号
    print("对不起,我们没有这个商品!")
    elif choice == "q": #判断输入的是"q",打印商品列表,格式化退出
    print("-----已购买的商品列表-------")
    print("ID 商品 数量 单价 总价")
    int_count = 0 #定义一个计数器
    total_price = 0#定义商品总价格
    for keys in shopping_car: #对购物车(字典)循环,输出商品
    print("%1s %s %2s %s %s"
    %(int_count+1, #计数器
    keys, #商品
    shopping_car[keys][1], #商品的数量
    shopping_car[keys][0], #商品的价格
    shopping_car[keys][1]*shopping_car[keys][0]) #购买商品花费的总价格!
    )
    int_count +=1 #计数器自加一
    total_price += shopping_car[keys][1] * shopping_car[keys][0] #总花费,各个商品总价自加
    print("您总共花费:%s"%total_price)
    print("-------------------------")
    print("您的余额为:",salary)
    print("------- -END------------")
    break
    else: #输入其他内容,则判定没有此选项!
    print("没有此选项!")
  • 相关阅读:
    第二次作业
    国庆节假期作业1
    memoize使用实例之创建XHR
    javascript 函数式编程(3)
    javascript 异步循环 asyncEach
    c++ 精简版 序列化
    javascript 函数式编程(4)
    javascript setZeroTimeout
    c++ 精简版 thread
    PHP Memoization
  • 原文地址:https://www.cnblogs.com/zh605929205/p/6646376.html
Copyright © 2020-2023  润新知