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,"元","\n","鼠标",10,"元","\n","游艇",20,"元""\n","美女",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("欢迎下次光临") #

 

posted on 2017-06-08 23:49  bronc  阅读(219)  评论(0编辑  收藏  举报