基本数据类型

一、整型

如: 18、73、84

二、长整型

如:2147483649、9223372036854775807

三、浮点型

如:3.14、2.88

四、字符串

如:'wupeiqi'、'alex'、'lzl'

1、字符串常用功能:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian
#str功能操作
name = "my name is lzl"
 
print(name.capitalize())            #首字母大写
#My name is lzl
 
print(name.count("l"))              #统计字符串出现某个字符的个数
#2
 
print(name.center(30,"-"))          #打印30个字符,不够的-补齐
#--------my name is lzl--------
 
print(name.ljust(30,"-"))           #打印30个字符,不够的-补齐,字符串在左边
#my name is lzl----------------
 
print(name.endswith("lzl"))         #判断字符串是否以lzl结尾
#True
 
print(name[name.find("na"):])       #find寻找na所在的索引下标 字符串也可以切片
#name is lzl
 
 
print("5.3".isdigit())              #判断字符是否为整数
#False
print("a_1A".isidentifier())        #判断是不是一个合法的标识符(变量名)
#True
print("+".join(["1","2","3"]))     #把join后的内容加入到前面字符串中,以+为分割符
#1+2+3
print("\nlzl".strip())              #去换行符
#lzl
print("1+2+3+4".split("+"))        #以+为分隔符生成新的列表,默认不写为空格
#['1', '2', '3', '4']
 
name = "my name is {name} and i an {year} old"
print(name.format(name="lzl",year=20)
#my name is lzl and i an 20 old
print(name.format_map({"name":"lzl","year":20}))            #很少用
#my name is lzl and i an 20 old
 
= str.maketrans("abcdefli","12345678")         #转换  一一对应
print("lianzhilei".translate(p))
#781nzh8758
 

五、列表

如:[11,22,33,44,55]、['wupeiqi', 'alex','lzl']

1、创建列表:

1
2
3
4
5
6
7
#两种创建方式
name_list = ['alex''seven''eric']
print(name_list)
# ['alex', 'seven', 'eric']
name_list = list(['alex''seven''eric'])
print(name_list)
# ['alex', 'seven', 'eric']

2、列表类常用功能

① 切片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
print(name_list[0:3])       #取下标0至下标3之间的元素,包括0,不包括3
#['Alex', 'Tenglan', 'Eric']
print(name_list[:3])        #:前什么都不写,表示从0开始,效果跟上句一样
#['Alex', 'Tenglan', 'Eric']
print(name_list[3:])        #:后什么不写,表示取值到最后
#['Rain', 'Tom', 'Amy']
print(name_list[:])         #:前后都不写,表示取值所有
#['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
print(name_list[-3:-1])     #从-3开始到-1,包括-3,不包括-1
#['Rain', 'Tom']
print(name_list[1:-1])      #从1开始到-1,下标有正有负时,正数在前负数在后
#['Tenglan', 'Eric', 'Rain', 'Tom']
print(name_list[::2])       #2表示,每个1个元素,就取一个
#['Alex', 'Eric', 'Tom']
#注:[-1:0] [0:0] [-1:2] 都是空

② 追加

1
2
3
4
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
name_list.append("new")          #append追加,加到最后,只能添加一个
print(name_list)
#['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', 'new']

③ 插入

1
2
3
4
#插入
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
name_list.insert(3,"new")          #insert插入,把"new"加到下标3的位置
print(name_list)

④ 修改 

1
2
3
4
#修改
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
name_list[2= "lzl"                #把下标2的字符串换成lzl
print(name_list)

⑤ 删除 

1
2
3
4
5
6
7
8
9
10
11
#3种删除方式
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
del name_list[3]                      #del删除,指定要删除的下标
print(name_list)
#['Alex', 'Tenglan', 'Eric', 'Tom', 'Amy']
name_list.remove("Tenglan")          #remove删除,指定要删除的字符
print(name_list)
#['Alex', 'Eric', 'Tom', 'Amy']
name_list.pop()                       #pop删除,删除列表最后一个值
print(name_list)
#['Alex', 'Eric', 'Tom']

⑥ 扩展

1
2
3
4
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
age_list = [11,22,33]
name_list.extend(age_list)               #extend扩展,把列表age_list添加到name_list列表
print(name_list)

⑦ 拷贝

1
2
3
4
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
copy_list = name_list.copy()                #copy拷贝,对列表进行复制
print(copy_list)
#注:博客最下有关于深浅copy的详细区分

⑧ 统计 

1
2
3
name_list = ["Alex","Tenglan","Eric","Amy","Tom","Amy"]
print(name_list.count("Amy"))               #count统计,统计列表Amy的个数
#2

⑨ 排序和翻转

1
2
3
4
5
6
7
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy","1","2","3"]
name_list.sort()                              #sort排序,对列表进行排序
print(name_list)
#['1', '2', '3', 'Alex', 'Amy', 'Eric', 'Rain', 'Tenglan', 'Tom']
name_list.reverse()                           #reverse翻转,对列表进行翻转
print(name_list)
#['Tom', 'Tenglan', 'Rain', 'Eric', 'Amy', 'Alex', '3', '2', '1']

⑩ 获取下标

1
2
3
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
print(name_list.index("Tenglan"))              #index索引,获取字符的下标
#1

六、元组

如:(11,22,33,44,55)、('wupeiqi', 'alex','lzl')

1、创建元组

1
2
3
4
5
6
7
8
9
10
11
#5种创建方式
age = 11,22,33,44,55            #直接写数字或者字符串,默认创建类型元组 字符串类型用引号'lzl'
#输出: (11, 22, 33, 44, 55)   
age = (11,22,33,44,55)          #常见命名方式,()指定类型元组
#输出: (11, 22, 33, 44, 55)
age = tuple((11,22,33,44,55))   #tuple 以类的方式创建(()) 双括号 里面的()不可去掉
#输出: (11, 22, 33, 44, 55)
age = tuple([11,22,33,44,55])   #同(()) 效果一样 很少用 忘记它
#输出: (11, 22, 33, 44, 55)
age = tuple({11,22,33,44,55})   #({})创建的元组,随机排列  没卵用
#输出: (33, 11, 44, 22, 55)

2、元组类常用功能:

1
2
3
4
5
6
7
8
##count        #统计元组字符出现的次数   
name =  ('wupeiqi''alex','lzl')
print(name.count('alex'))             
# 1
##index             #查看字符串所在的索引位置
name =  ('wupeiqi''alex','lzl')
print(name.index('lzl'))               
# 2

七、字典 无序

如:{'name': 'wupeiqi', 'age': 18} 、{'host': '2.2.2.2', 'port': 80}

注:字典一种key:value 的数据类型,也称键值对。字典dict是无序的,key值必须是唯一的,不能有重复。循环时,默认循环的是key

 1、创建字典
1
2
3
4
5
6
7
#两种创建方式:
info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
print(info_dic)
#{'stu1102': 'LongZe Luola', 'stu1101': 'TengLan Wu', 'stu1103': 'XiaoZe Maliya'}
info_dic = dict({'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",})
print(info_dic)
#{'stu1102': 'LongZe Luola', 'stu1101': 'TengLan Wu', 'stu1103': 'XiaoZe Maliya'}

2、字典类常用功能:

① 增加

1
2
3
info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
info_dic['stu1104'= "JingKong Cang"           #增加
print(info_dic)

② 修改

1
2
3
info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
info_dic["stu1101"= "Jingkong Cang"         #有相应的key时为修改,没有为增加
print(info_dic)

③ 删除

1
2
3
4
5
6
7
8
9
10
11
12
#3种删除方式
info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
info_dic.pop('stu1101')                       #pop删除,指定删除的key
print(info_dic)
#{'stu1103': 'XiaoZe Maliya', 'stu1102': 'LongZe Luola'}
del info_dic['stu1102']                      #del删除,指定删除的key
print(info_dic)
#{'stu1103': 'XiaoZe Maliya'}
info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
info_dic.popitem()                             #随机删除,没卵用
print(info_dic)
#{'stu1101': 'TengLan Wu', 'stu1103': 'XiaoZe Maliya'}

④ 查找value值

1
2
3
4
5
info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
print(info_dic.get('stu1102'))                  #get查找,通过key查找value值
#LongZe Luola
print(info_dic['stu1102'])                      #通过key直接查找,但是如果输入查找的key不存在的话,就会报错,get则不会
#LongZe Luola

⑤ 字典多级嵌套

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
av_catalog = {
    "欧美":{
        "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
        "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
        "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
        "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
    },
    "日韩":{
        "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
    },
    "大陆":{
        "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
    }
}
 
av_catalog["大陆"]["1024"][1+= ",可以用爬虫爬下来"
print(av_catalog["大陆"]["1024"])
#['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']

⑥ 循环

1
2
3
4
5
6
7
8
9
10
11
info_dic = {'stu1101'"TengLan Wu",'stu1102'"LongZe Luola",'stu1103'"XiaoZe Maliya",}
for stu_nu in info_dic:
    print(stu_nu,info_dic[stu_nu])             #循环默认提取的是key
#stu1103 XiaoZe Maliya
#stu1101 TengLan Wu
#stu1102 LongZe Luola
for k,v in info_dic.items():                  #先把dict生成list,数据量大的时候费时,不建议使用
    print(k,v)
#stu1103 XiaoZe Maliya
#stu1101 TengLan Wu
#stu1102 LongZe Luola

八、集合

如:{'lzl', 33, 'alex', 22, 'eric', 'wupeiqi', 11}

注:集合是一个无序的,不重复的数据组合。去重性,把一个列表变成集合,就自动去重了。关系测试,测试两组数据之前的交集、差集、并集

1、创建集合

1
2
3
4
#标准创建方式
info_set = set(["alex","wupeiqi","eric","lzl",11,22,33])
print(info_set,type(info_set))
#{33, 11, 'wupeiqi', 'lzl', 'alex', 'eric', 22} <class 'set'>

2、集合类常用功能

① 添加

1
2
3
4
5
6
7
8
9
10
#添加的两种方式
set_1 = set(["alex","wupeiqi","eric","lzl"])
set_1.add(11)                         #add只能添加一个元素
print(set_1)
#{'alex', 'lzl', 'eric', 11, 'wupeiqi'}
 
set_1 = set(["alex","wupeiqi","eric","lzl"])
set_1.update([11,22,33])
print(set_1)                           #update可以添加多个元素
#{33, 11, 'alex', 'wupeiqi', 'eric', 22, 'lzl'}

② 删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#删除的三种方式
set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
set_1.remove("alex")                    #remove 删除指定元素
print(set_1)
#{'eric', 33, 'lzl', 11, 22, 'wupeiqi'}
 
set_1.pop()                             #pop 随机删除元素
print(set_1)
#{33, 'wupeiqi', 11, 22, 'lzl'}
 
set_1.discard("lzl")                   #discard 删除指定元素,与remove区别在于,如果元素不存在也不会报错
set_1.discard(55)
print(set_1)
#{33, 'wupeiqi', 11, 22}

3、集合关系测试

① 交集

1
2
3
4
5
6
#交集
set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
set_2 = set([11,22,33,44,55,66])
 
print(set_1.intersection(set_2))            #intersection 取两个set的交集 set_1和set_2可以互换位置
#{33, 11, 22}

② 并集

1
2
3
4
5
6
#并集
set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
set_2 = set([11,22,33,44,55,66])
 
print(set_1.union(set_2))                     #union 取两个set集合的并集 set_1和set_2可以互换位置
#{33, 66, 11, 44, 'eric', 55, 'lzl', 22, 'wupeiqi', 'alex'}

③ 差集

1
2
3
4
5
6
#差集
set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
set_2 = set([11,22,33,44,55,66])
 
print(set_1.difference(set_2))                 #difference  取两个set集合的差集 set_1有但是set_2没有的集合
#{'lzl', 'eric', 'wupeiqi', 'alex'}

④ 子集、父集  

1
2
3
4
5
6
7
8
#子集
set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
set_2 = set([11,22,33,44,55,66])
set_3 = set([11,22,33])
print(set_1.issubset(set_2))                      #issubset 子集
#False
print(set_1.issuperset(set_3))                    #issuperset 父集
#True

⑤ 对称差集

1
2
3
4
5
6
#对称差集
set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
set_2 = set([11,22,33,44,55,66])
 
print(set_1.symmetric_difference(set_2))           #symmetric_difference 对称差集=两个集合并集减去合集
#{66, 'lzl', 'eric', 'alex', 55, 'wupeiqi', 44}

⑥ 运算符做关系测试

1
2
3
4
5
6
7
8
9
10
11
#运算符做关系测试
set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])
set_2 = set([11,22,33,44,55,66])
 
set_union = set_1 | set_2           # 并集
 
set_intersection = set_1 & set_2    # 交集
 
set_difference = set_1 - set_2      # 差集
 
set_symmetric_difference = set_1 ^ set_2  # 对称差集

Python【第二章】:Python的数据类型的更多相关文章

  1. Python第二章-变量和数据类型

    变量和数据类型 一.什么是变量,常量 思考:程序执行指的是什么? 对数据进行存储处理和计算,最终获得结果,这是程序执行的本质. 变量的概念和在数学中的变量的概念一样的,只是在计算机程序中,变量不仅可以 ...

  2. 简学Python第二章__巧学数据结构文件操作

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  3. 第二章Python入门

    第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Pytho ...

  4. [Python笔记][第二章Python序列-复杂的数据结构]

    2016/1/27学习内容 第二章 Python序列-复杂的数据结构 堆 import heapq #添加元素进堆 heapq.heappush(heap,n) #小根堆堆顶 heapq.heappo ...

  5. [Python笔记][第二章Python序列-tuple,dict,set]

    2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...

  6. [python笔记][第二章Python序列-list]

    2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...

  7. 第二章 深入 C# 数据类型

    第二章 深入 C# 数据类型 1.封装又称信息隐藏,是指利用抽象数据类型将数据和数据的操作结合在一起,使其构成一个不可分割的独立实体,尽可能的隐藏内部的细节,只保留一些对外接口,使之于外部发生联系. ...

  8. Java 第二章 变量、数据类型和运算符

    第二章      变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...

  9. 孤荷凌寒自学python第二十八天python的datetime.date模块

     孤荷凌寒自学python第二十八天python的datetime.date模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.toordinal() 此方法将访问从公元1年1月1日至当 ...

  10. 孤荷凌寒自学python第二十二天python类的继承

    孤荷凌寒自学python第二十二天python类的继承 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中定义的类可以继承自其它类,所谓继承的概念,我的理解 是,就是一个类B继承自 ...

随机推荐

  1. 国外干货!6个方法助你设计出优秀的APP

    伟大的设计来源于一致性和细致化,而其实只要有足够的纪律,每个团队都可以实现这一点. 品牌(源码:http://www.jinhusns.com/Products/Download/?type=xcj) ...

  2. [Java编程思想-学习笔记]第4章 控制执行流程

    4.1  return 关键字return有两方面的用途:一方面指定一个方法结束时返回一个值:一方面强行在return位置结束整个方法,如下所示: char test(int score) { if ...

  3. IT人经济思维之投资 - 创业与投资系列文章

    前面笔者写过一个文(IT从业者的职业规划),主要通过笔者的从业道路的经验,介绍了IT从业者的职业选择道路问题,主要从技术.业务和管理三大方面进行了描述.然后,通过文(IT从业者的职业道路(从程序员到部 ...

  4. C# 6.0新特性---语法糖

    转载:http://www.cnblogs.com/TianFang/p/3928172.html 所谓语法糖就是在编译器里写做文章,达到简化代码书写的目的,要慎重使用,省略过多不易理解. NULL检 ...

  5. Symantec Backup Exec Agent For Linux防火墙问题

    如果在Unix或Linux安装配置好了Symantec Backup Exec Agent For Linux,但是在Symantec Backup Exec服务端无法访问Symantec Backu ...

  6. 从AdventureWorks学习数据库建模——实体分析

    最近打算写写数据库建模的文章,所以打算分析微软官方提供的SQL Server示例数据库AdventureWorks,看看这个数据库中有哪些值得学习的地方. 首先我们需要下载安装一个SQL Server ...

  7. 使用Java实现简单串口通信

    最近一门课要求编写一个上位机串口通信工具,我基于Java编写了一个带有图形界面的简单串口通信工具,下面详述一下过程,供大家参考 ^_^ 一: 首先,你需要下载一个额外的支持Java串口通信操作的jar ...

  8. spark on yarn 提交任务出错

    Application ID is application_1481285758114_422243, trackingURL: http://***:4040Exception in thread ...

  9. 【问题&解决】fonts/fontawesome-webfont.woff2 404 (Not Found)

    问题: 虽然网页正常显示和运行,但是有2个字体文件出现404错误.像笔者这种强迫症是接受不了的. 解决: 因为笔者的服务器是虚拟主机,只需要在主机控制器平台添加对应的MIME类型即可. 这样服务器就支 ...

  10. POJ1273Drainage Ditches[最大流]

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 71559   Accepted: 2784 ...