Python3 中有六个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Sets(集合)
  • Dictionary(字典)

Number(数字)

Python3 支持 int、float、bool、complex(复数)

在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

像大多数语言一样,数值类型的赋值和计算都是很直观的。

内置的type()函数可以用来查询变量所指的对象类型。

数值运算

  1. >>> 5 + 4 # 加法
  2. 9
  3. >>> 4.3 - 2 # 减法
  4. 2.3
  5. >>> 3 * 7 # 乘法
  6. 21
  7. >>> 2 / 4 # 除法,得到一个浮点数
  8. 0.5
  9. >>> 2 // 4 # 除法,得到一个整数
  10. 0
  11. >>> 17 % 3 # 取余
  12. 2
  13. >>> 2 ** 5 # 乘方
  14. 32

  

注意:

  • 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
  • 2、一个变量可以通过赋值指向不同类型的对象。
  • 3、数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符。
  • 4、在混合计算时,Python会把整型转换成为浮点数。

String(字符串)

Python中的字符串用单引号(')或双引号(")括起来,同时使用反斜杠(\)转义特殊字符

字符串的截取的语法格式如下:

变量[头下标:尾下标]

索引值以 0 为开始值,-1 为从末尾的开始位置。

加号 (+) 是字符串的连接符, 星号 (*) 表示复制当前字符串,紧跟的数字为复制的次数

  1. name = 'old\t Boy'
  2. print(name.capitalize()) # 首字母大写
  3. print(name.casefold()) # 大写变小写
  4. print(name.center(30, '-')) # 30位空间,字符放中间,左右加符号填充空格
  5. print(name.count('o',0,3)) # 0-3位置中找字符o
  6. print(name.endswith('i')) # 找最后一位字符,判断真假
  7. print(name.startswith('i')) # 找开头第一位字符,判断真假
  8. print(name.expandtabs(20)) # 将\t替换成20位空格
  9. print(name.find('oy'))
  10. msg = 'my name is {0} and i am {1} years old'
  11. msg2 = 'my name is {name} and i am {age} years old'
  12. print(msg.format('boy', 22)) # 按顺序
  13. print(msg2.format(age=33, name='old')) # 可不按顺序
  14. #print(msg2.format_map())
  15. print(msg.isalpha()) # 是不是全英文字母,判断真假
  16. print(msg2.isalnum()) # 是否包含字母或数字,判断真假
  17. print('2'.isdecimal()) # 是否是十进制,小数
  18. print('2'.isdigit()) # 是否是正整数
  19. print('al_ex'.isidentifier()) # 是否是合法变量名
  20. print('al_ex'.isupper()) # 是否大写
  21. print('al_ex'.islower()) # 是否小写
  22. print('3.1'.isnumeric()) # 是否小数
  23. print('My Name Is'.istitle()) # 是否是标题(要求首字母大写)
  24. print(','.join(msg)) # 连接起来
  25. print('-'.join(['abc','def','and'])) #常用方法
  26. print('old boy'.ljust(30,'-')) # 类center,居左,不够的字符补齐
  27. print('old boy'.rjust(30,'-')) # 类center,居右,不够的字符补齐

    

List(列表)

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号([])之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表截取的语法格式如下:

变量[头下标:尾下标]

索引值以 0 为开始值,-1 为从末尾的开始位置。

  1. >>> list = ['a','b',3.14,'haha',88]
  2. >>> list2 = ['woleigequ', 798]
  3. >>> list
  4. ['a', 'b', 3.14, 'haha', 88]
  5. >>> list2
  6. ['woleigequ', 798]
  7. >>> list[0]
  8. 'a'
  9. >>> list[2:]
  10. [3.14, 'haha', 88]
  11. >>> list2 * 2
  12. ['woleigequ', 798, 'woleigequ', 798]
  13. >>> list + list2
  14. ['a', 'b', 3.14, 'haha', 88, 'woleigequ', 798]
    # 增加
  15. >>> list2.append('you win')
  16. >>> list2
  17. ['woleigequ', 798, 'you win']
    # 修改
  18. >>> list[1] = 'Tianjin'
  19. >>> list
  20. ['a', 'Tianjin', 3.14, 'haha', 88]
  21. >>> list.pop()
  22. 88
  23. >>> list
  24. ['a', 'Tianjin', 3.14, 'haha']
    # 删除

  

  1. >>> list = ['a','b',3.14,'haha',88]
  2. >>> list.remove('haha')
  3. >>> list
  4. ['a', 'b', 3.14, 88]
  5. >>> del list[1]
  6. >>> list
  7. ['a', 3.14, 88]
  8. >>> list = ['a','b',3.14,'haha',88]
  9. >>> list[0::2]
  10. ['a', 3.14, 88]
  11.  
  12. # 插入
  13.  
  14. >>> list.insert(2,'en')
  15. >>> list
  16. ['a', 'b', 'en', 3.14, 'haha', 88]
  17.  
  18. #索引
  19.  
  20. >>> names[1:4] # 索引1-3位置元素
  21. ['Beijing', 'Beijing', '5']
  22. >>> names[-1] # 最后一位元素
  23. '!'
  24. >>> names[-3:-1] # 倒数第三位到倒数第二个
  25. ['Beijing', '5']
  26. >>> names[-3:] # 倒数第三位到最后
  27. ['Beijing', '5', '!']
  28. >>> names[0:5]
  29. ['Chongqing', 'Beijing', 'Beijing', '5', '!']
  30. >>> names[0:5:2] # 步长为2,相当于打印1,3,5
  31. ['Chongqing', 'Beijing', '!']
  32. # 查找相同的第二个字符串
  33.  
  34. >>> list.append('en')
  35. >>> list
  36. ['a', 'b', 'en', 3.14, 'haha', 88, 'en']
  37. >>> first_index = list.index('en')
  38. >>> second_index = list[first_index+1:].index('en')
  39. >>> first_index
  40. 2
  41. >>> second_index # 这里是因为从位置3开始到最后去寻找第二个‘en’,所以相当于新的列表是[3.14, 'haha', 88, 'en']
  42. 3
  43. >>> s_index = first_index + second_index +1
  44. >>> s_index
  45. 6
  46.  
  47. # 统计重复字符串个数
  48. >>> list.count('en')
  49. 2
  50.  
  51. # extend添加列表
  52. >>> s = ['come','go']
  53. >>> list.extend(s)
  54. >>> list
  55. ['a', 'b', 'en', 3.14, 'haha', 88, 'en', 'come', 'go']
  56.  
  57. #排序
  58.  
  59. list.sort()
  60.  
  61. #倒序
  62.  
  63. list.reverse()
  64.  
  65. # 拷贝
  66.  
  67. list2 = list.copy()
  68.  
  69. >>> list2
  70. ['a', 'b', 'en', 3.14, 'haha', 88, 'en', 'come', 'go']
  71.  
  72. # 看着内容相等,实际上占用了不同的内存
  73.  
  74. >>> id(list)
  75. 140199406210440
  76. >>> id(list2)
  77. 140199406253256
  78.  
  79. # 排序
  80.  
  81. # 注意:无法对列表中多种类型进行排序,需统一格式
  82.  
  83. >>> list2[3] = '3.14'
  84.  
  85. >>> list2[5] = '88'
  86. >>> list2
  87. ['a', 'b', 'en', '3.14', 'haha', '88', 'en', 'come', 'go']
  88.  
  89. # 正向排序
  90. >>> list2.sort()
  91. >>> list2
  92. ['3.14', '88', 'a', 'b', 'come', 'en', 'en', 'go', 'haha']
  93.  
  94. # 反向排序
  95. >>> list2.reverse()
  96. >>> list2
  97. ['haha', 'go', 'en', 'en', 'come', 'b', 'a', '88', '3.14']

  

Tuple(元组)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号(())里,元素之间用逗号隔开。

  1. >>> t1 = ('a','b',3,99)
  2. >>> t1
  3. ('a', 'b', 3, 99)
  4. >>> t2 = ('haishiwo', 'youlaile')
  5. >>> t2
  6. ('haishiwo', 'youlaile')
  7. >>> t1[1]
  8. 'b'
  9. >>> t1[-2]
  10. 3
  11. >>> t1[1:3]
  12. ('b', 3)
  13. >>> t2 * 2
  14. ('haishiwo', 'youlaile', 'haishiwo', 'youlaile')
  15. >>> t1 + t2
  16. ('a', 'b', 3, 99, 'haishiwo', 'youlaile')

  

Set(集合)

集合(set)是一个无序不重复元素的序列。

基本功能是进行成员关系测试和删除重复元素。

可以使用大括号({})或者 set()函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

  1. >>> list1 = ['a','b',3,'b',99,3]
  2. >>> list1
  3. ['a', 'b', 3, 'b', 99, 3]
  4. >>> set(list1)
  5. {99, 3, 'b', 'a'}
  6. >>> a = set('sdfsdfljljlj')
  7. >>> b = set('fsck')
  8. >>> a - b # 差集
  9. {'j', 'd', 'l'}
  10. >>> a | b # 并集
  11. {'k', 'l', 's', 'j', 'd', 'f', 'c'}
  12. >>> a & b # 交集
  13. {'s', 'f'}
  14. >>> a ^ b # 不同时存在
  15. {'k', 'l', 'j', 'd', 'c'}

  

Dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型

列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

  1. >>> x = {}
  2. >>> x['name'] = 'test'
  3. >>> x
  4. {'name': 'test'}
  5. >>> x[2] = 56789
  6. >>> x
  7. {2: 56789, 'name': 'test'}
  8. >>> x[2]
  9. 56789
  10. >>> x.keys()
  11. dict_keys([2, 'name'])
  12. >>> x.values()
  13. dict_values([56789, 'test'])
  14. >>> x['name'] = 'huanmingzile'
  15. >>> x
  16. {2: 56789, 'name': 'huanmingzile'}
  17. >>> {x: x**2 for x in (2,4,6)}
  18. {2: 4, 4: 16, 6: 36}
  19. >>> dict([('a',1),('b',2),('c',3)])
  20. {'b': 2, 'a': 1, 'c': 3}
  21. >>> dict(a=1,b=2,c=3)
  22. {'b': 2, 'a': 1, 'c': 3}

  

  1. # 创建字典
  2. names = {
  3. 'stu1101':'oldboy',
  4. 'stu1201': {'name:':'hehe','hobbie':'girl'}
  5. }
  6. # 查询字典
  7. print(names['stu1101'])
  8. print(names['stu1201']['hobbie'])
  9. # 修改字典,若不存在,会创建key和value
  10. names['stu1301'] = 123
  11. print(names,'\n','-'*10)
  12.  
  13. names['stu1201']['hobbie'] = 'python'
  14. print(names,'\n','-'*10)
  15. # 删除
  16. print(names.pop('stu1301')) # 存在返回value
  17. print(names.pop('stu1404','no such student found')) # 不存在返回后面的字符串
  18.  
  19. del names['stu1101']
  20. print(names)
  21. name = ['jack', 'rose', 'cai']
  22. name1 = dict.fromkeys(name,[1,2,3])
  23. print(name1)
  24. name1['jack'][1] = 10
  25. print(name1)
  26. name1['jack'] = 100
  27. print(name1)
  28. # 打印
  29. {'rose': [1, 2, 3], 'cai': [1, 2, 3], 'jack': [1, 2, 3]}
  30. {'rose': [1, 10, 3], 'cai': [1, 10, 3], 'jack': [1, 10, 3]}
  31. {'rose': [1, 10, 3], 'cai': [1, 10, 3], 'jack': 100}
  32. # 这里就是想告诉你,改value中的某个值,是修改的内存指针中的这个value,所有的values都会跟着修改
  33. # 如果修改了整个value,那就相当于重新开辟了一个内存,只会修改这一个value

  

Python算术运算符

以下假设变量a为10,变量b为21:

Python比较运算符

以下假设变量a为10,变量b为20:

Python赋值运算符

以下假设变量a为10,变量b为20:

Python位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

下表中变量 a 为 60,b 为 13。

  1. 128 64 32 16 8 4 2 1
  2.  
  3. a = 22 # 0 0 0 1 0 1 1 0
  4. b = 56 # 0 0 1 1 1 0 0 0
  5.  
  6. # & 按位与,都为真时为真,否则为假
  7. a & b = 16 # 0 0 0 1 0 0 0 0
  8.  
  9. # | 按位或, 有一个为真时为真,否则为假
  10. a | b = 63 # 0 0 1 1 1 1 1 0
  11.  
  12. # ^ 异或, 同为真或假时为假,不同为真
  13. a ^ b = 46 # 0 0 1 0 1 1 1 0
  14.  
  15. # << 左移
  16. a << 2 = 88 # 0 1 0 1 1 0 0 0
  17.  
  18. # >> 右移
  19. b >> 2 = 14 # 0 0 0 0 1 1 1 0
  20.  
  21. # ~ 按位取反,第一位真取负数
  22. ~a = 1 1 1 0 1 0 0 1 = -128 + 64 + 32 + 8 + 1 = -23

  

Python逻辑运算符

Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:

Python成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。 

Python身份运算符

身份运算符用于比较两个对象的存储单元

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

python3 数据类型的更多相关文章

  1. 整理了最全的Python3数据类型转换方法,可以收藏当手册用

    本文基于python3.8版本,总结了各种数据类型直接的转换规则和方法.算是比较全了,可以收藏当手册来查. 概述 数据类型转换,指的是通过某种方法,将一个数据由原来的类型转换为另外一个类型.比如,我们 ...

  2. python3数据类型

    python基本数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) ...

  3. python3数据类型--数字

    数字 Python数字数据类型用于存储数值.数字数据类型是不允许改变的,所以如果改变数字数据类型的值,将重新分配内存空间. 以下实例在变量赋值时Number对象被创建: #!/usr/bin/env ...

  4. Python3数据类型及转换

    I. 数据类型 Python3将程序中的任何内容统称为对象(Object),基本的数据类型有数字和字符串等,也可以使用自定义的类(Classes)创建新的类型. Python3中有六个标准的数据类型: ...

  5. Python3 数据类型-字典

    字典是一种可变数据类型,且可存储任意类型对象. 字典使用大括号"{}"括起来,由键(key)和值(values)组成,键只能使用不可变类型定义,值可以使用可变类型{'键':'值'} ...

  6. Python3 数据类型-字符串

    字符串是 Python 中最常用的数据类型,是一个个字符组成的有序的序列,是字符的集合. 一 字符串定义 创建字符串很简单,可以使用引号('或"或""")来创建 ...

  7. Python3 数据类型-列表

    序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. 索引如下图: 列表命名(list): 组成:使用[]括起来,并且 ...

  8. Python3数据类型之数字

    1. Python数字类型的作用 Python数字类型用来存储数值,它是不可变对象,一旦定义之后,其值不可以被修改.如果改变了数字类型的值,就要重新为其分配内存空间. 定义一个数字类型的变量:a = ...

  9. Python3 数据类型-集合

    在Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 集合 ...

随机推荐

  1. 一个小团队TDD游戏及实践

    介绍的这个游戏是自己根据目前带的团队的实际情况来制定的, 在游戏实践过程中,收到了较好的效果,故打算把这个游戏分享出来,一是分享一下实践,而是集思广益,不断完善,更好的利用游戏来锻炼队伍.下面就将游戏 ...

  2. SZU:B47 Big Integer II

    Judge Info Memory Limit: 32768KB Case Time Limit: 10000MS Time Limit: 10000MS Judger: Normal Descrip ...

  3. C++反汇编与逆向分析技术揭秘

    C++反汇编-继承和多重继承   学无止尽,积土成山,积水成渊-<C++反汇编与逆向分析技术揭秘> 读书笔记 一.单类继承 在父类中声明为私有的成员,子类对象无法直接访问,但是在子类对象的 ...

  4. iOS 7用户界面过渡指南

    iOS 7用户界面过渡指南 泽涛陈 | 交互设计 视觉设计 译译生辉 | 2013.06.26 本文最新PDF格式文档下载: http://vdisk.weibo.com/s/InBpB(2013年7 ...

  5. jquery简单封装

    对Raphael画图标的一个jquery简单封装 公司要做一个项目的demo,要求地图上可以插红旗,所以就用到了Raphael. 因为是个demo,所以地图就用了一张图片,效果如下: 所以为了更好的封 ...

  6. spring.net AOP初探

    AOP是什么? 面向切面编程,在OO中有一个开放关闭原则,及对修改关闭,对扩展开放.AOP可以说是设计模式的集合加强版,使用代理.工厂.策略等等模式,来实现方法的结合.这样说还比较模糊,我们先往下看. ...

  7. [置顶] github 出现 Permission denied (publickey)的解决

    今天写了一篇博客,想push到github上的时候出现了以下错误 Permission denied (publickey). fatal: The remote end hung up unexpe ...

  8. C++中const用法详解

    本文主要内容来自CSDN论坛: http://bbs.csdn.net/topics/310007610 我做了下面几点补充. 补充: 1. 用const声明全局变量时, 该变量仅在本文件内可见, 类 ...

  9. IPC之消息队列详解与使用

    一.    概念 消息队列就是一个消息的链表.对消息队列有写权限的进程可以向其中按照一定的规则添加新消息:对消息队列有读权限的进程可以从消息队列中读出消息.消息队列是随内核持续的.下面介绍三个概念: ...

  10. Android 布局详解

    Android 布局详解 1.重用布局 当一个布局文件被多处使用时,最好<include>标签来重用布局. 例如:workspace_screen.xml的布局文件,在另一个布局文件中被重 ...