Python3的基本数据类型

  • 变量不需要提前声明
  • 每个变量使用前必须赋值,赋值之后能会被建立
  • Python中,变量是没有类型的,这里所说的“类型”是指内存中所存储的对像的类型。
  • Python中有六种标准数据类型
    • Number (数字)
    • String (字符串)
    • List (列表)
    • Tuple (元组)
    • Dictionary (字典)
    • Sets (集合)
    • 不可变:Number(数字)、String(字符串)、Tuple(元组)
    • 可变:List(列表)、Dictionary(字典)、Set(集合)

1. Number

  • 常用类型有int、float、bool;可以用type()函数来查看变量类型

  • int、float支持所有的算术运算

  • bool类型为0和1,0等价于False,1为True

  • 例:对于int、float类型操作:

      	a = 8    
      	b = 3
      	a + b    # 11
      	a - b    # 5
      	a * b    # 24
      	a // b   # 2
      	a / b    #  2.6666666666666665
      	a % b    # 2
      	a ** b   # 512
    
  • 例:bool类型:

      		In [22]: a = 0
      		In [23]: b = 1
      		In [24]: a == True
      		Out[24]: False
      		In [25]: a == False
      		Out[25]: True
      		In [26]: b == True
      		Out[26]: True
      		In [27]: b == False
      		Out[27]: False
    

2. String

  • 定义方法: a = 'abc'a = str()
  • 字符串常用操作方式:索引、查找、切片、相加、复制、输出
  • 字符串常用方法
    • 例:

        	#字符串相乘(复制)
        		‘8’ * 8    
        	#字符串相加
        		name = 'yhyang'
        		city = 'beijing'
        		infor = name + ' ' + city  
        	#字符串索引
        		name[0]                            # 返回第一个值:y
        		name[-1]                           # 返回最后一个值:g
        	#字符串切片
        		name[:]                            # :前后都不写,取整个字符串
        		name[0:3]                          # 从第一个到第4个,不取第四个:yhy
        		name[:-1]                          # 从第一个到倒数第二个:yhyan
        	#字符串输出,用f''格式输出
        		print(f'名字:{name},城市:{city}')
        		输出内容为:  名字:yhyang,城市:beijing
        	#字符串常用方法:
        		name.upper()                       # 将name的值变为大写,对就的小写为name.lower()
        		info.title()                       # 标题样式,把每个单词第一个字母大写
        		name.strip(‘h’)                    # 移除头、尾指定的字符串
        		info.capitalize()                  # 将字符串的第一个字母大写
        		name.replace('y', 'Y')               # 用Y替换y
        		name.zfill(10)                     # 字符串右对齐,不够10位的用0补全
        		name.rjust(10, '$' )                # 字符串右对齐,不够10位用$符补全
        		name.center(10, '$' )               # 字符串中间对齐,不够10位用$符补全
        		name.count('y')                     # 计算字符串中y的个数
        		name.index('a')                     # 返回字符串中a的位置,如果有多个,返回的是第一个的位置
        		name.find('hy')                     # 找到hy在字符串中的位置
        		info[1:6:2]                        #  取字符串第二到第六个,步长为2,取隔一个取一个
        		info[::-1]                         # 返转字符串
        		info.split('y')                     # 以y 为分隔符,分隔字符串
      

3. 列表

  • 列表定义方法: a = []a = list()
  • 列表元素类型:数值、字符串
  • 列表操作方式:增、删、改、查、反转、相加
    • 例:

       # 定义列表
      	 a = ['zhangsan', 'lisi', 'wangwu']
      	 b = [1, 3, 2, 5, 4]
       #元素类型
      	 注:虽然一个列表中的元素可以有字符串,和数值
      	 但是,不建议定义字符串时混着用,建议一个字符串中只有一种数据类型
       #操作方式
      	 a.append('yhy')                          # 增加列表元素,新元素在最后面追加
      	 a.insert(2, 'e')                         # 在列表第三个位置插入值e
      	 a.pop(n)                                # n为数值,删除列表中第n个元素,参数为空时从最后一个删除
      	 a.[::-1]                                # 反转列表
      	 a.reverse()                             # 反转列表
      	 a[3]                                    # 取列表中第四个元素的值
      	 a[-1]                                   # 取列表中倒数第一个元素的值
      	 a[1:3]                                  # 取列表中第二到第3个元素的值
      	 a[1] = 'aaa'                             # 修改列表第二个元素的值
      	 a = []                                  # 清空列表
      

4. 元组

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

  • 元组中的元素类型也可以不相同

  • 定义方式:a = ()b = tuple()

  • 操作方式与列表类似

  • 常用方法:

       	# 取最大最小值
       		max(a)                                # 取元组a中最大值
       		min(a)                                # 取元组a中最小值
       		len(a)                                # 查看元组的长度
       	#元组相加
       		a + b                                 # 元组a与元组b的值组成一个新的元组
    

5. 字典

  • 字典(dictionary)是Python中另一个非常有用的内置数据类型
  • 列表是有序的对象集合,字典是无序的对象集合
  • 字典当中的元素是通过键来存取的
  • 字典用{}来定义,是一组组的键值对,key:value
  • 键是唯一的,不可变的
    • 例:

         # 字典定义
         	dic = {}  或 dic = dict()
         	dic = dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
         	print(dic) 输出 {'Taobao': 3, 'Runoob': 1, 'Google': 2}
         	{x: x**2 for x in (2, 4, 6)} 生成字典为{2: 4, 4: 16, 6: 36}
         	dic = dict(Runoob=1, Google=2, Taobao=3)
         	dic的值为 {'Taobao': 3, 'Runoob': 1, 'Google': 2}
         #字典取值
         	用dic['key']的方式取值
         	dic['Taobao']                         # 值为 3
         	for key,value in dic.items():
         			print(f'{key}:{value}')           # 用for循环输出字典的key:vlaue
         #字典的相关方法
         	dic.clear() 	                      # 删除字典内所有元素
         	dic.copy() 	                          # 返回一个字典的浅复制
         	dic().fromkeys() 	                  # 创建一个新字典,以序列seq元素做字典的键,val为字典键对应的值
         	dic.get() 	                          # 返回指定键的值
         	key in dic 	                          # 如果键在字典则返回true,否则false
         	dic.items() 	                      # 以里边返回遍历的元组
         	dic.keys() 	                          # 以列表返回一个字典所有的键
         	dic.values() 	                      # 以列表返回字典中所有值
         	dic.setdefault(key,default)           # 和get()类似,如果键不存在于字典中,添加键并设值为default
         	dic.pop(key) 	                      # 删除指定键key的值,并返回该值
      

6. 集合

  • 一个无序不重复元素的序列
  • 基本功能是进行成员关系测试和删除重复元素
  • 可以使用大括号 { } 或者 set() 函数来定义集合
  • 注意:创建空集合必须用set(),不能用{},因为{}是空字典
  • Set可以进行集合运算
    • 例:

      	 # 创建格式
      		 s = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
      		 或 s = set(('Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'))
      		 或 s = set(['Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'])
      		 得到的s是一样的
      	 #集合运算
      		 a=set('abcdefgabcdefg')
      		 b=set('acbcdc')
      		 print(a - b)                        # a和b的差集
      		 print(a | b)                        # a和b的并集
      		 print(a & b)                        # a和b的交集
      		 print(a ^ b)                        # a和b不同时存在的元素
      
  • 使用s.add(key)可以添加元素到集合当中,可以重复添加,但没有效果
  • 使用s.remove(key)可以删除元素
  • 注意,集合当中不能放入可变对象

7. 数据类型转换

函数 描述
int(x [,base]) 将x转换为一个整数
float(x) 将x转换到一个浮点数
complex(real [,imag]) 创建一个复数
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
set(s) 转换为可变集合
dict(d) 创建一个字典。d 必须是一个序列 (key,value)元组
frozenset(s) 转换为不可变集合
chr(x) 将一个整数转换为一个字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串