zoukankan      html  css  js  c++  java
  • 新的一天!昨日内容回顾+购物车系统的初步实现+字典的概念和基本操作

    昨日内容回顾:

      列表:增删改查

            查找:切片问题    

            删除;   pop根据索引删除,删除的内容的值会返回

            count 计数

            extend 两个列表叠加,一次性追加多个值,a会变,b不会变

                用c=a+b           a和b都不会发生变化

            index  由内容找位置

            a.sort()

            b=sorted(a)              实现对a的从左到右的排序

    今日内容:

    元组:

      (12,)只有一个元素也要加   ","

    a=(1,2,3,4)

    print(a[1])

      元组只读不能修改  其他的和列表一样

    购物车系统的设计思路:   

    先介绍列表的嵌套:

    1 #_auther_="stuwu79"
    2 #date:2019/9/25
    3 
    4 # shopping_list=["Mac","Book","bike","kindle"]
    5 a = [[1,2,3],"alex",4,(2,3,4)]
    6 print(a[0][1])
    7 #b=a[0]    b=[1,2,3]       b[1]            第6行与第7行意义相同

     介绍商品列表的构建:

     1 product_list = [
     2     ("Mac",9000),
     3     ("kindle",800),
     4     ("tesla",90000),
     5     ("python book",105),
     6     ("bike",3000)
     7 ]
     8 
     9 money = input("please input your saving :")
    10 if money.isdigit():
    11     saving = int(money)
    12     for i in product_list :                        #或者替换为   for i in enumerate(product_list)
    print(i)
    13 print(product_list.index(i),i)

    for i,v in enumerate(product_list,1):
                                                                      #加1默认从1开始,不然从0开始
    print(i,"_______________",v)

     结果:

      1—————————(“Mac”,9000)

      。。。。。。。。。。。。

    添加一个变量V使得商品列表分成两部分

    列表的赋值操作:

    1 a,b=[2,3]
    2 print(a)
    3 print(b)
    4 
    5 
    6 结果: 2
    7           3

    基本功能都实现:

     1 #_auther_="stuwu79"
     2 #date:2019/9/25
     3 
     4 # shopping_list=["Mac","Book","bike","kindle"]
     5 # a = [[1,2,3],"alex",4,(2,3,4)]
     6 # print(a[0][1])
     7 #b=a[0]    b=[1,2,3]       b[1]
     8 product_list = [
     9     ("Mac",9000),
    10     ("kindle",800),
    11     ("tesla",90000),
    12     ("python book",105),
    13     ("bike",3000)
    14 ]
    15 shopping_car=[]
    16 money = input("please input your saving :")
    17 if money.isdigit():
    18     saving = int(money)
    19     while True:
    20         for i,v in enumerate(product_list,1):#加1默认从1开始,不然从0开始
    21             print(i,"____",v)
    22 
    23         choice = input("选择购买商品的编号[退出:q]")
    24 
    25         if choice.isdigit():
    26             choice = int(choice)
    27             if choice > 0 and choice <= len(product_list):
    28 
    29                 p_item =product_list[choice-1]
    30 
    31                 if p_item[1] < int(money):
    32                     saving -= p_item[1]
    33                     shopping_car.append(p_item)
    34 
    35                 else :
    36                     print("余额不足,还剩%s"%saving)
    37 
    38             else :
    39                 print("编码不存在")
    40 
    41         elif choice == "q":
    42 
    43             print("您已经购买如下商品:")
    44 
    45             for i in shopping_car:
    46                 print(i)
    47 
    48             print("您还剩%s元钱"%saving)
    49 
    50             break
    51         else :
    52 
    53             print("wrong input")

     查看内存地址:

        id(a)

    字典的概念

      字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据,python对key进行哈希函数运算,根据结果觉得value的存储地址,字典是无序存储,且key必须可哈希(必须是不可变类型)

    键唯一    

    字典的创建:

      dic={"name":"alex",,,,,,,,}   

      dic2=dict((("name","alex")))

      

    整型和字符串类型是不可变类型

       dic={"name":"alex","age":35,"hobby":"{"girl——name":"铁锤"}","is_handsome":True}

       print(dic)          #取出alex          dic["name"]            name就是键        不能用列表做键

       print(dic["name"])

    对字典的操作:

    赋值:

    dic1={'name':'alex'}

    dic['age'] = 18            #(键,有则修改,无则创建)

    print(dic1)

    结果:{'age':18,'name':'alex'}

    dic1.setdefault('age',34)           

    #setdefault方法尝试加入,如果 键无则创建并且加入此值且返回此值,如果 键存在则返回此键对应的原有值

    查询:

    查看字典中所有的键:

       print(dic3.keys())          此时取出的是keys类型可转换为list类型

                      list(dic3.keys())

      同理:

    print(dic.values())                    取值

    print(dic.items())                      取出所有键值对

    修改:

    dic3 = {'age':18,'name':'alex','hobby':'girl'}

    dic3['age']=55

    print(dic3)

    结果:{'age':55,'name':'alex','hobby':'girl'}

    dic3.update(dic4)                #将dic4加入dic3中,类似于列表的extend

    #如果无相同键就全加入,如果有相同键就更新

     

    删除:

    del dic['name']               #删除指定键值对

    del dic                             #删除整个字典

    dic.clear()                        #删除字典的所有内容

    dic.pop('age')             #按键删键值对,且返回值

    dic.popitem()                   #随机删除某个键值对且返回值

    其他操作:

      dic6 = dict.fromkeys(['host1','host2','host3'],'test')           #初始化,使得所有host键对应的值都是test

           字典的嵌套

      dic={

         {}

                      {}

         {}

    }

    排序:

    print(sorted(dic.values()))                #对字典里的值进行排序

    print(sorted(dic))                #对字典里的键按ascll码进行排序

    print(sorted(dic.items()))                #对字典的键进行

    字典的遍历:

     for i in dic:

      pring(i)               #打印出来键

    for i in dic :

      print(i,dic5[i])    #通过键找值然后打印出来                                    优先此方法

    for i in dic.items() :

      print(i)               #打印键值对

  • 相关阅读:
    链式表的操作
    顺序表的操作
    MDX基础
    1071 小赌怡情 (15 分)
    1069 微博转发抽奖 (20 分)
    1068 万绿丛中一点红 (20 分)
    1066 图像过滤 (15 分)
    02-线性结构2 一元多项式的乘法与加法运算 (20 分
    03-树1 树的同构 (25 分)
    03-树3 Tree Traversals Again (25 分)
  • 原文地址:https://www.cnblogs.com/stuwu79/p/11584056.html
Copyright © 2011-2022 走看看