Python开发第2篇数据类型

Posted Nice1949

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python开发第2篇数据类型相关的知识,希望对你有一定的参考价值。

一、数字

数字数据类型用于存储数值。

他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。

# 创建对象
var1 = 1
var2 = 2

# 删除对象
del var1
del var1,var2

四种不同的数字类型

  • int(有符号整型)

  • long(长整型[也可以代表八进制和十六进制])

  • float(浮点型)

  • complex(复数)

二、字符串

字符串是由数字、字母、下划线组成。

str = Hello World
 
print(str)                 #输出完整字符串
print(str[0])              #输出字符串中的第一个字符
print(str[2:5])            #输出字符串中第三个至第五个之间的字符
print(str[2:])             #输出从第三个开始到最后的字符串
print(str*2)               #输出字符串两次
print(say:  + str)       #输出连接的字符串

三、列表

1、特点:可重复,类型可不同

2、列表操作

列表定义

names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]

列表元素访问

# 打印第一个元素
print name[0]

# 打印最后一个元素
print name[-1]

切片

# 定义1个列表
names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]

# 取索引1到4的元素,包含1,不包含4
names[1:4]

#取索引0到3的元素
names[:3] 

# 取索引3到最后1个元素
names[3:]

# 每隔1个元素,取1个元素
names[0::2] 
names[::2]

追加元素

# 在列表结尾追加元素
names.append("Mrli")

执行结果:
[Alex, Tenglan, Eric, Rain, Tom, Amy, Mrli]

插入元素

names = [Alex, Tenglan, Eric, Rain, Tom, Amy]

#在索引为2的元素前增加新的元素
names.insert(2,"Mrli")

执行结果:
[Alex, Tenglan, ‘Mrli’,Eric, Rain, Tom, Amy]

修改元素

names = [Alex, Tenglan, Eric, Rain, Tom, Amy]

# 替换索引为2的元素
names[2] = Mrli

执行结果:
[Alex, Tenglan, ‘Mrli’, Rain, Tom, Amy]

删除元素

# 根据索引删除对应元素
del names[2] 

执行结果:
[Alex, Tenglan, Rain, Tom, Amy]
#删除指定元素 names.remove("Eric") 执行结果:
[Alex, Tenglan, Rain, Tom, Amy]
# 删除列表的最后一个元素 names.pop() 执行结果:
[Alex, Tenglan, Eric, Rain, Tom]

扩展

names2 = [小李,‘小张’]
names = [Alex, Tenglan, Eric, Rain, Tom, Amy]
print names.extend(names2)

执行结果:
[Alex, Tenglan, Eric, Rain, Tom, Amy小李,‘小张’]

排序&翻转

names = [Alex, Tenglan, Eric, Rain, Tom, Amy小李,‘小张’]
names.sort()
>>> names [‘Alex‘, ‘Amy‘, ‘Eric‘, ‘Rain‘, ‘Tenglan‘, ‘Tom‘, ‘小张‘, ‘小李‘] >>> names.reverse() #反转 >>> names [‘小张‘, ‘小李‘, ‘Amy‘, ‘Tom‘, ‘Rain‘, ‘Eric‘, ‘Tenglan‘, ‘Alex‘]

下标获取

names = [Alex, Tenglan, Eric, Rain, Tom, Amy小李,‘小张’]
names.index(
"Amy")

>>> 5

元素统计

count() 方法用于统计某个元素在列表中出现的次数

names = [Alex, Tenglan, Eric, Rain, Tom, Amy小李,‘小张’]
names.count("Alex") >>> 1

四、元组

1.特点:有序集合,不可变对象

2.元组操作:

# 元组定义
names = ("alex","jack","eric")

#获取下标
names.index("jack")
>>> 1

#统计元素出现次数
names.count("jack")
>>> 1

五、字典

1.特点:dict是无序的,key是唯一的

2.字典操作

字典定义

info = {
    stu1101: "TengLan Wu",
    stu1102: "LongZe Luola",
    stu1103: "XiaoZe Maliya",
}

增加字典元素

info["stu1104"] = "xiaozhang"
>>> info
>>> {
    ‘stu1102: LongZe Luola,
    ‘stu1104: ‘xiaozhang,
    ‘stu1103: XiaoZe Maliya,
    ‘stu1101: TengLan Wu   }

删除字典元素

info = {stu1102: LongZe Luola,stu1104: xiaozhang,stu1103: XiaoZe Maliya,stu1101: TengLan Wu}
# 删除字典元素
info.pop["stu1101"]
执行结果:
{stu1102: LongZe Luola,stu1104: xiaozhang,stu1103: XiaoZe Maliinfo}

del info[“stu1102”]
执行结果:
{stu1104: xiaozhang,stu1103: XiaoZe Maliinfo}

# 随机删除字典元素
info.popitem()
执行结果:
{stu1104: xiaozhang}

修改字典元素

info = {stu1104: xiaozhang,stu1103: XiaoZe Maliinfo}

info[stu1104] = "小张"

查找字典元素

info = {stu1102: LongZe Luola, stu1103: XiaoZe Maliya}

"stu1102" in info
>>> True

info.get("stu1102")
>>> LongZe Luola

info["stu1102"]
>>> LongZe Luola

dict循环

#方法1
for key in info:
    print(key,info[key])

#方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
    print(k,v)

六、集合

1.特点:无序的,不重复的数据组合

2.集合操作

集合关系测试

# 创建一个数值集合  
s = set([3,5,9,10])

# 创建一个唯一字符的集合   
t = set("Hello")          

a = t | s         # t和s的并集    
b = t & s         # t和s的交集  
c = t – s         # 求差集(项在t中,但不在s中)  
d = t ^ s         # 对称差集(项在t或s中,但不会同时出现在二者中)  

成员关系测试

x in s
测试 x 是否是 s 的成员

x not in s
测试 x 是否不是 s 的成员

s.issubset(t)
s <= t
测试是否 s 中的每一个元素都在 t 中

s.issuperset(t)
s >= t
测试是否 t 中的每一个元素都在 s 中

其他操作

s.union(t)  
s | t  
返回一个新的 set 包含 s 和 t 中的每一个元素  
  
s.intersection(t)  
s & t  
返回一个新的 set 包含 s 和 t 中的公共元素  
  
s.difference(t)  
s - t  
返回一个新的 set 包含 s 中有但是 t 中没有的元素  
  
s.symmetric_difference(t)  
s ^ t  
返回一个新的 set 包含 s 和 t 中不重复的元素  
  
s.copy()  
返回 set “s”的一个浅复制  

t.add(x)
添加一项
s.update([10,37,42]) 在s中添加多项 t.remove(H) 使用remove()可以删除一项: len(s) set 的长度

 

七、练习

程序:集合

要求:

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

程序:查找

要求:

  • 查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
      li = ["alec", " aric", "Alex", "Tony", "rain"]
      tu = ("alec", " aric", "Alex", "Tony", "rain") 
      dic = {‘k1‘: "alex", ‘k2‘: ‘ aric‘,  "k3": "Alex", "k4": "Tony"}

程序:购物车

功能要求:

  • 要求用户输入总资产,例如:2000
  • 显示商品列表,让用户根据序号选择商品,加入购物车
  • 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
  • 附加:可充值、某商品移除购物车

程序: 三级菜单

要求: 

  1. 打印省、市、县三级菜单
  2. 可返回上一级
  3. 可随时退出程序


























以上是关于Python开发第2篇数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Python开发第三篇基本数据类型

Python代码阅读(第19篇):合并多个字典

Python代码阅读(第41篇):矩阵转置

Python代码阅读(第26篇):将列表映射成字典

Python代码阅读(第40篇):通过两个列表生成字典

Python代码阅读(第25篇):将多行字符串拆分成列表