• python数据类型


    一,变量
    # 变量是用一个变量名来表示,变量必须有大小变量名的开头不能是用 下滑线数字开头的
    #:变量没有处置功能只是定义个名字只是绑定功能
    # 变量的解压:
    # a,b,c,d,e='hello'
    # a,*_,e='hello'
    # print(a,e)
    #:链式赋值
    #:x=y=z=1
    #:增量赋值
    #:x+=1
    二,列表(list)
    # 定义:[]内用逗号分隔,按照索引,存放各种类型,每个位置代表一个元素的特性
    # 1,可以存放多个值
    # 2可以修改指定的索引位置对应的值,是可变的类型(可变类型的定义:是id 不变 type不变值变的过程)
    # 1列表的一些操作方法:
    # c=["alex","wang"]
    # for i in range (len(c)):
    #     print(c[i])      #:索引的方法
    # for i in (c):
    #     print(i)      #:也是索引的方法
    # c.append("asad")  #:插入的方法到最后
    #:c.insert(2,'adadad') #:插入到指定的位置
    #:c.pop(1)   #:删除的功能后面加的索引值:
    #:c[1]="afafafa"  #:替换的功能
    #: exted  接受一个参数用列表来表示
    #:c.remove(1)  #:删除第一次出现的该元素
    #:c,count()   #;括号里写一个元素在这个列表里面出现了几次
    #:c.index(2)  #:第二个元素没有抛出异常
    #:c.sort()  #:排序的功能
    #:c.reverse() #:反转的功能
    #:clear  #:清空的功能一般不用
    #:c.extend(list) #:追加列表 就是吧list写到list
    三,元组(tuple)
    # tuple(元组)是另一种有序的列表()小括号表示
    # tuple内容不能修改不能增加删除只能查看
    # 定义单个元组时括号内要加(,)不加的话被认为是()Python优先级
    # tuple中的不变是指每个元素的不变 但要是有
    # list列表就会发生改变例如: t = ('a', 'b', ['A', 'B'])
    #:具有索引,切片,循环,的功能
    四,字符串(str)
    c="alex"
    print(c.upper())  #:把字符中的小写字母转换成大写的字母 isupper判断是不是大写
    print(c.lower())   #把字符中的大写字母变成小写字母
    print(c.capitalize()) #:把开头的第一个单词变小写
    print(c.title())  #:每个单词的第一个字母转换为大写其他小写
    print(c.endswith(“x”)  #:查看是不是x结尾
    print(c.startswith("a") #:查看是否a开头
    print(c.find("a") #:查看a的索引位置
    print(x.format)  #:格式化字符串和%s差不多
    print(c.isdigit())  #:查看字符串是否是数字
    print(c.isspace()) #:是否是空格
    print(c.isalpha()) #:查看是否是字母
    print(c.replace('x','X') #:替换的功能

    重点字符串

    strip()  #:去除空格还有一些特殊的符号
    " ".join(["i","am","world!"])     列表变换成字符串
    " hello world". split ("1",1)   字符串变换成列表
    "hello world".index("q")      索引
    s.replace("world,","python")      替换
    eval(字符串可以算加法 把字符放在python中可以执行)
    print("hello %s,%s"%("sb","egon"))    这就是传说中的格式化
    print("hello{name},his age is {age}".formt(age),format(age= 30,name= "wusir"))
    print("".isdigit())

    五,字典(dict)

    定义:{key1:value1,key2:value2},key-value结构,keys必须是哈西值
    特性:可以存放多个值2可以修改指定key对应的值,可变但是不能有两个相同的key 无需性
    字典遍历就是用for循环第一个到最后一个的过程 dict的特点是查找速度快,无论有多少个都一样
    # d={'a':1,'b':2,'c':3,}
    # for k,v in d.items():
    #     print(k,v)    #:通过这个方法能把字典中的a  和 数字1
    #:good={"tom":123,"alex":456,"egon";778,"tom":918}
    #:for k,v in good.items():
    #:      # print(k,v)      #:字典的遍历
    #:for i in good:
            # print(i,good[i]) #:循环取值
    #:good["tom"]="123     #:字典的修改
    #:good["gao"]="567     #:字典的增加
    #:del good["tom"}      #::字典的删除
    #:del pop(key) #:用key删除 #:good clear #:删除所有
    #:print(goos.get(“da”)) #:查看k值
    #:d.setdefault('z',3) #:添加
    #:d5=dict(['x',1),('y',2),('z',3)])
    #: print(d5) #:创建字典
    请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
    和list比较,dict有以下几个特点:
    查找和插入的速度极快,不会随着key的增加而变慢;
    需要占用大量的内存,内存浪费多。
    # 而list相反:
    # 查找和插入的时间随着元素的增加而增加;
    # 占用空间小,浪费内存很少。
    # 所以,dict是用空间来换取时间的一种方法。
    # dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要

    这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。

    
    

    要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key:

    六,集合(set):

    集合的基本形式:set_dic={"adada","1","dada","aad"}

    集合的特点作用:无序性,不能重复的特性,必须是可以哈西的(和字典一样没有下标不能索引取值)

    #集合去重
    # s={'egon',123,'egon','1'}
    # print(list(set(s)))       #:打印出来的结果是无序的
    #:s={'1',1,(1,2),'a','b'}
    #: for i in s:
    #: print(i) #:循环(因为集合不能单独取值)有两种取值一种是依赖索引取值另一种不依赖索引)
    #: c={'保时捷','迈凯伦','帕加尼‘,‘埃文塔多’}:
    #: h={'宝马','迈凯伦','帕加尼‘,‘布加迪’}
    #:找共同的部分 :交集
    #:print( c & h) 结果:迈凯伦,帕加尼 print(c.intersection (h))
    #:去所有的车型 : 并集
    #:print( c | h) #:(结果全部车型) print(c.union(h))
    #:找只在c部分的车型:差集
    #:print(c - h) #:只存在c里面 print(c.difference(h)
    #:就是不同时在c 和 h 中的问题里面:对称差集
    #:print(c ^ h)

    七、数据类型分类

    1、可变不可变
      可变:列表,字典
      不可变:数字,字符串,元组

    2、存放值的个数
      一个值:数字,字符串
      多个值(容器类型):列表,元组,字典

    3、取值方式
      直接取值:数字
      序列类型:字符串,元组,列表
      映射类型:字典 

    七作业

    有如下值集合 [11,22,33,44,55,66,77,88,99,90...]将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

    # c=[11,22,33,44,55,66,77,88,90]
    # b={"k1":[],"k2":[]}
    # for i in c:
    #     if i >66:
    #         b["k1"].append(i)
    #     else:
    #         b["k2"].append(i)
    # print(b)

    二、查找
    查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。

     li = ["alec", " aric", "Alex", "Tony", "rain"]

    # for i in li:    #:循环列表里面的信息
    #     b=i.strip()   #:去除列表里面空格和其他
    #     if(b.startswith("a")or b.startswith("A")) and b.endswith("c"):
    #         #:必须是以字母a开头或者是A开始并且是以c结尾:
    #         print(b)

    tu = ("alec", " aric", "Alex", "Tony", "rain") 

    # for i in tu:
    #     b=i.strip()
    #     if(b.startswith("a")or b.startswith("A"))and b.endswith("c"):
    #         print(b)

    dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}

    # dic={'k1':"alex",'k2':"aric","k3":"Alex","k4":"tony"}
    # for i in dic:
    #     b=dic[i].strip()
    #     if(b.startswith("a")or b.startswith("A"))and b.endswith("c"):
    #         print(b)

    四、购物车
    功能要求:要求用户输入总资产,例如:2000

    显示商品列表,让用户根据序号选择商品,加入购物车
    购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
    附加:可充值、某商品移除购物车
    goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
    ]
    选做题:用户交互,显示省市县三级联动的选择

    # assert_all=0   #:定义你的钱数
    # car_list=[]     #:定义购物车
    # while True:
    #     i2 = input("请输入你所带的金钱:")
    #     try:
    #         assert_all=int(i2)        #:如果你输入的是整数正确退出循环往下执行
    #         break;
    #     except:
    #         print("你输入的什么鬼")  #:如果你输入的是其他的东西就会继续循环直达输入正确的整数
    #         continue;
    # goods = [
    #     {"name": "电脑", "price": 1999},
    #     {"name": "鼠标", "price": 10},
    #     {"name": "游艇", "price": 20},
    #     {"name": "美女", "price": 998},
    #     ]
    # for i in goods:
    #     print(i["name"],i["price"],"元")   #:循环购物车里面的东西
    # while True:
    #     i2=input("请你选择商品(滚/y退出):")   #:输入选择的商品
    #     if i2.lower()=="y":             #:如果输入的是 “y”就退出
    #         break;
    #     for j in goods:
    #         if j["name"] == i2:     #:如果输入的存在字典里面
    #             car_list.append(j);  #:添加到字典里面去
    #             print("","电脑",1999,"元","
    ","鼠标",10,"元","
    ","游艇",20,"元""
    ","美女",998,"元")
    # print(car_list)    #:打印购物车里面的东西
    # all_price=0  #:定义
    # for item in car_list: #:循环购物车里面的东西
    #     p=item["price"]   #:一件东西的价格
    #     all_price=all_price+p  #:东西一共多少钱
    # if assert_all >all_price:    #:如果所带的钱比买的东西钱多
    #     # print("买的起")
    #     c=assert_all-all_price   #:剩余的钱数
    # print("总计:",assert_all,"消费:"all_price)
    # print("买的起你的剩余金钱为:",c) #:打印出来 # print("欢迎下次光临") # else: # h=all_price-assert_all #:如果你带的钱没有购买商品的钱多 # print("你买不起欠的钱为:",h) #:打印你欠了多少钱 # i3=input("钱不够可以充钱:") #:输入你要冲值的钱 # if int(i3)>h: #:如果大于缺的钱数就会打印买的起 并且会 打印你剩余的钱数 # print("买得起") # f=int(i3)-h # print("剩余金钱为:",f) # print("欢迎下次光临") # else: # print("你输入的钱还差一些返回你冲的钱:",i3) #:如果你输入欠的钱不够就花返给你并且退出 # print("欢迎下次光临") #
  • 相关阅读:
    vue 之循环添加不同class
    小程序 之使用HMACSHA1算法加密报文
    微信小程序 之wx.getLocation()获取地理信息中的小坑
    js 时间戳与yyyy-mm-dd或yyyy-MM-dd HH-mm-ss互相转换
    小程序 之登录 wx.login()
    打开串口(COM)号大于9时报错
    linux的mysql权限错误导致看不到mysql数据库
    Nginx报错汇总
    获取磁盘总空间和剩余空间
    关于CoCreateInstance的0x800401f0问题
  • 原文地址:https://www.cnblogs.com/nupecs/p/6964369.html
Copyright © 2020-2023  润新知