zoukankan      html  css  js  c++  java
  • python3基础3

    1、列表

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

    列表的数据项不需要具有相同的类型

    定义列表

    list1 = ['physics', 'chemistry', 1997, 2000]
    list2 = [1, 2, 3, 4, 5 ]
    list3 = ["a", "b", "c", "d"]

    通过下标访问列表中的元素,下标从0开始计数

    print(list1[0])
    >>physics
    print(list1[2])
    >>1997
    print(list1[-1])#负数表示从后面倒着取
    >>2000
    print(list1[-2])
    >>1997

    切片:去多个元素(列表切片取元素包括前面但不包括后面)

    >>> list1 = ['physics', 'chemistry', 1997, 2000,1, 2, 3, 4, 5,"a", "b", "c", "d"]
    >>> list1[1:4]  #取下标1至4之间的元素,但不包括4
    ['chemistry', 1997, 2000]
    >>> list1[1:-1] #取下标1至-1之间元素,但不包括-1即最后一个元素
    ['chemistry', 1997, 2000, 1, 2, 3, 4, 5, 'a', 'b', 'c']
    >>> list1[0:3]
    ['physics', 'chemistry', 1997]
    >>> list1[:3]  #如果从头开始取,0可以忽略
    ['physics', 'chemistry', 1997]
    >>> list1[3:]  #如果想取最后一个元素,就必须不能写-1
    [2000, 1, 2, 3, 4, 5, 'a', 'b', 'c', 'd']
    >>> list1[3:-1]  #写了-1最后一个元素取不到
    [2000, 1, 2, 3, 4, 5, 'a', 'b', 'c']
    >>> list1[0::2]  #后面的2是代表每隔一个元素就取一个
    ['physics', 1997, 1, 3, 5, 'b', 'd']
    >>> list1[::2]   #和上面效果相同
    ['physics', 1997, 1, 3, 5, 'b', 'd']
    元素追加
    >>> list1
    ['physics', 'chemistry', 1997, 2000, 1, 2, 3, 4, 5, 'a', 'b', 'c', 'd']
    >>> list1.append("xiaoming")  #append方法表示元素追加
    >>> list1
    ['physics', 'chemistry', 1997, 2000, 1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'xiaoming']

    元素插入

    >>> l=[1,2,3,4,5,6,7,8]
    >>> l.insert(2,9) #insert表示插入,2和9表示在下标为2的前面插入9这个数字
    >>> l
    [1, 2, 9, 3, 4, 5, 6, 7, 8]

    元素修改

    >>> l
    [1, 2, 9, 3, 4, 5, 6, 7, 8]
    >>> l[2]="xiaoming"  #修改元素时通过下标找到元素直接修改
    >>> l
    [1, 2, 'xiaoming', 3, 4, 5, 6, 7, 8]

    元素删除

    >>> l
    [1, 2, 'xiaoming', 3, 4, 5, 6, 7, 8]
    >>> del l[2]  #删除下标为2的元素
    >>> l
    [1, 2, 3, 4, 5, 6, 7, 8]
    >>> del l[5]  #删除下标为5的元素
    >>> l
    [1, 2, 3, 4, 5, 7, 8]
    >>> l.remove(7)  #删除指定下标为7的元素
    >>> l
    [1, 2, 3, 4, 5, 8]
    >>> l.pop()  #删除列表最后一个值
    8
    >>> l
    [1, 2, 3, 4, 5]

    元素扩展

    >>> l
    [1, 2, 3, 4, 5]
    >>> b=[7,8,9,10]
    >>> l.extend(b)  #extend扩展
    >>> l
    [1, 2, 3, 4, 5, 7, 8, 9, 10]

    元素拷贝(?)

    >>> l
    [1, 2, 3, 4, 5, 7, 8, 9, 10]
    >>> l_copy=l.copy()
    >>> l_copy
    [1, 2, 3, 4, 5, 7, 8, 9, 10]

    元素统计

    >>> l
    [1, 1, 2, 3, 4, 5, 6]
    >>> l.count(1)
    2
    >>> l.count(2)
    1

    元素排序(3.0中不同数据类型不能放在一起排序)

    >>> names=['xiaoming','jack','amy','tom',1,2,3]
    >>> names.sort()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: unorderable types: int() < str()
    >>> names[-1]='3'
    >>> names[-2]='2'
    >>> names[-3]='1'
    >>> names
    ['amy', 'jack', 'tom', 'xiaoming', '1', '2', '3']
    >>> names.sort() #相同类型进行排序
    >>> names
    ['1', '2', '3', 'amy', 'jack', 'tom', 'xiaoming']
     

    元素反转

    >>> names
    ['1', '2', '3', 'amy', 'jack', 'tom', 'xiaoming']
    >>> names.reverse()  #反转
    >>> names
    ['xiaoming', 'tom', 'jack', 'amy', '3', '2', '1']

    获取下标

    >>> names
    ['xiaoming', 'tom', 'jack', 'amy', '3', '2', '1']
    >>> names.index('tom')
    1  #返回元素的下标,如果列表中这个元素有多个只返回找到的第一个下标

    2、元组

    Python的元组与列表类似,不同之处在于元组的元素不能修改。

    元组使用小括号,列表使用方括号。

    元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

    语法:

    names = ("xiaoming","jack","eric")

    由于元组不能修改所以只有两个方法:count和index。

    购物车程序练习:

    • 启动程序后,让用户输入工资,然后打印商品列表

    • 允许用户根据商品编号购买商品

    • 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 

    • 可随时退出,退出时,打印已购买商品和余额

      salary=int(input("请输入您的工资:"))
      shopping_list=["衬衫","牛仔裤","牛肉","咖啡","手表"]
      price_list=[100,500,50,300,10000]
      shopping=[]
      for i in shopping_list:
          print(shopping_list.index(i)+1,"",i,"[",price_list[shopping_list.index(i)],"元]")
      while True:
          customer_chose=input("请输入您想购买的物品序列号:")
          if customer_chose=='q':
              exit("已购商品为%s,所余额为%s"%(shopping,salary))
          else:
              customer_chose=int(customer_chose)
              if salary >= price_list[customer_chose - 1]:
                  print("剁手成功,恭喜您获得宝贝%s" % shopping_list[customer_chose - 1])
                  salary=salary-price_list[customer_chose-1]
                  shopping.append(shopping_list[customer_chose-1])
              elif salary < price_list[customer_chose - 1]:
                  print("不好意思您的余额为%s不够购买此商品!!!!"%salary)
      还有很多问题慢慢优化!!!

    3、字典

    字典是另一种可变容器模型,且可存储任意类型对象。

    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,键必须是唯一的,但值则不必。

    值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

    • 字典的特性:

      • 字典是无序的

      • key必须是唯一的

    语法:

    dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
    • 增加

      >>> dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
      >>> dict['xiaoming']='12345'  #直接添加key和value的值
      >>> dict
      {'Alice': '2341', 'xiaoming': '12345', 'Beth': '9102', 'Cecil': '3258'}
    • 修改

      >>> dict
      {'Alice': '2341', 'xiaoming': '12345', 'Beth': '9102', 'Cecil': '3258'}
      >>> dict['Beth']='12345' #根据key值来修改value的值
      >>> dict
      {'Alice': '2341', 'xiaoming': '12345', 'Beth': '12345', 'Cecil': '3258'}
    • 删除

      >>> dict
      {'Alice': '2341', 'xiaoming': '12345', 'Beth': '12345', 'Cecil': '3258'}
      >>> dict.pop('Alice') #根据key值删除
      '2341'
      >>> dict
      {'xiaoming': '12345', 'Beth': '12345', 'Cecil': '3258'}
      >>> del dict['xiaoming']  #根据key值删除
      >>> dict
      {'Beth': '12345', 'Cecil': '3258'}
      >>> dict.popitem() #随机删除
      ('Beth', '12345')
      >>> dict
      {'Cecil': '3258'}
    • 查找

      >>> dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
      >>> 'Alice'in dict  #标准用法
      True
      >>> dict.get('Beth') #get获取
      '9102'
      >>> dict['Beth']  #key值获取
      '9102'
      >>> dict['xiaoming']  #用key值获取不存在的key时会报错
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      KeyError: 'xiaoming'
      >>> dict.get('xiaoming') #用get获取不存在的key值时什么都不返回
      >>>
    • 多级字典操作

      d={
          "美国":{
              "www.facbook":["大家可以互相交流的网站!!","比较不错!"],
              "http://www.yahoo.com":["提供多元化服务!","挺好的!!"]
          },
          "中国":{
              "www.baidu.com":["国内知名搜索网站!!","我喜欢!!"],
              "wwww.sogou.com":["国内不错的搜索网站!!","经常使用!!"]
          }
      }
      d["中国"]["www.baidu.com"][1]+="希望毕业可以进入这样的大公司!!"
      print(d["中国"]["www.baidu.com"])
      结果为:
      ['国内知名搜索网站!!', '我喜欢!!希望毕业可以进入这样的大公司!!']
    • 获得value

      >>> dict
      {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
      >>> dict.values()
      dict_values(['2341', '9102', '3258'])
    • 获得key值

      >>> dict
      {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
      >>> dict.keys()
      dict_keys(['Alice', 'Beth', 'Cecil'])
    • 添加字典值

      >>> dict.setdefault('xiaoming','12345')
      '12345'
      >>> dict
      {'Alice': '2341', 'xiaoming': '12345', 'Beth': '9102', 'Cecil': '3258'}
    • 更新字典值

      >>> dict
      {'Alice': '2341', 'xiaoming': '12345', 'Beth': '9102', 'Cecil': '3258'}
      >>> b={1:2,3:4,'Beth':'12345'}
      >>> dict.update(b)
      >>> dict
      {1: 2, 3: 4, 'Beth': '12345', 'Alice': '2341', 'xiaoming': '12345', 'Cecil': '3258'}
    • 获得key和value

      >>> dict.items()
      dict_items([(1, 2), (3, 4), ('Beth', '12345'), ('Alice', '2341'), ('xiaoming', '12345'), ('Cecil', '3258')])
    • 循环字典

      方法一:
      for key in d:
          print(key,d[key])
      运行结果为:
      中国 {'www.baidu.com': ['国内知名搜索网站!!', '我喜欢!!希望毕业可以进入这样的大公司!!'], 'wwww.sogou.com': ['国内不错的搜索网站!!', '经常使用!!']}
      美国 {'www.facbook': ['大家可以互相交流的网站!!', '比较不错!'], 'http://www.yahoo.com': ['提供多元化服务!', '挺好的!!']}
      方法二:
      for k,v in d.items():
          print(k,":",v)
       运行结果为:
      中国 {'wwww.sogou.com': ['国内不错的搜索网站!!', '经常使用!!'], 'www.baidu.com': ['国内知名搜索网站!!', '我喜欢!!希望毕业可以进入这样的大公司!!']}
      美国 {'www.facbook': ['大家可以互相交流的网站!!', '比较不错!'], 'http://www.yahoo.com': ['提供多元化服务!', '挺好的!!']}
    • 三级菜单程序练习

      • 打印省、市、县三级菜单

      • 可返回上一级

      • 可随时退出程序

        dict1={
            "河北省":{
                "石家庄市":['井陉县','正定县', '栾城县' ,'行唐县', '灵寿县','高邑县',' 深泽县',' 赞皇县 ','无极县',' 平山县', '元氏县 ','赵县', '辛集市',' 藁城市'],
                "沧州市":['沧县',' 青县',' 东光县', '海兴县',' 盐山县', '肃宁县',' 南皮县', '吴桥县', '献县', '孟村县', '泊头市', '任丘市', '黄骅市', '河间市' ],
                "邯郸市":['邯郸县', '临漳县', '成安县', '大名县', '涉县', '磁县', '肥乡县', '永年县', '邱县', '鸡泽县', '广平县', '馆陶县', '魏县', '曲周县', '武安市']
            },
            "山东省":{
            "济南市":['历下区','市中区','槐荫区','天桥区','历城区'],
            "青岛市":['市南区', '市北区', '四方区', '黄岛区'],
            "德州市":['陵县', '宁津县', '齐河县', '武城县', '庆云县']
        }
        }
        print(dict1)
        while True:
            for k in dict1.keys():
                print(k)
            cus_chose=input("请输入您想查询的省份:")
            if cus_chose== 'b':
                break
            elif cus_chose == 'q':
                exit()
            else:
                while True:
                    if cus_chose in dict1:
                        for i in dict1[cus_chose]:
                            print(i)
                        cus_chose1=input("请输入您想要查询的市:")
                        if cus_chose1=='b':
                            break
                        elif cus_chose1=='q':
                            exit()
                        else:
                            while True:
                                if cus_chose1 in dict1[cus_chose]:
                                    for j in dict1[cus_chose][cus_chose1]:
                                        print(j)
        ​
                                    cus_chose2 = input("最后一层了!!输入b返回上一层,输入q退出:")
        ​
                                    if cus_chose2 == 'b':
                                            break
                                    elif cus_chose2 == 'q':
                                         exit()
        比较low还有一些问题存在!!!
  • 相关阅读:
    HTTP协议学习笔记
    linux对文件某列求和
    mongodb拆库分表脚本
    mongodb基础应用
    mongodb实现对某列求和SUM
    员工价值——如何体现自己价值,如何被自己的领导认可
    使用MySQLMTOP监控MySQL性能(二)
    使用MySQLMTOP监控MySQL性能(一)
    apache+tomcat实现session共享
    apache+tomcat负载均衡3种实现方式
  • 原文地址:https://www.cnblogs.com/pythonbigdata/p/8390934.html
Copyright © 2011-2022 走看看