Python 基础数据类型

第二章 Python 基础数据类型


文章目录

  • 第二章 Python 基础数据类型
  • 前言
  • 一、python变量
  • 二、标准数据类型
    • 2.1、可变与不可变数据类型差异
    • 2.2、Number(数字)
      • 2.2.1、number类型的创建
      • 2.2.2、数值运算
    • 2.3、String(字符串)
    • 2.4、bool(布尔类型)
    • 2.5、List(列表)
    • 2.6、Tuple(元组)
    • 2.7、Set(集合)
    • 2.8、Dictionary(字典)
  • 总结


前言

通过第一章我们已经安装了python解释器 和 编辑器pycharm,接下来让我们一起来了解python中的基础数据类型。


一、python变量

不同于java等语言,Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

多个变量赋值:将最后一个等号(=)右边的值,依次赋值给等号(=)左边的变量

# 单行注释
# 这里我们变量的创建(即变量的赋值)
# 创建一个叫tom的学生,年龄18岁,成绩99.9分
"""
这里是多行注释:变量名必须由字母或下划线开头
"""
student = 'tom'  # 字符串变量
age = 18         # 整数变量
score = 99.9     # 浮点型变量


# print() 方法:将变量打印到控制台
print(student)
print(age)
print(score)

'''
多个变量赋值:将最后一个等号(=)右边的值,依次赋值给等号(=)左边的变量
'''
a = b = c = '多变量赋值'
print("=" * 50)     # 控制台打印50个 = ,用于肉眼区分
print(a)
print(b)
print(c)

执行结果:
Python 基础数据类型_第1张图片

二、标准数据类型

Python3 中常见的数据类型有:

  • Number(数字)
  • String(字符串)
  • bool(布尔类型)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

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

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
  • 可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)

2.1、可变与不可变数据类型差异

不可变类型当变量赋值发生变化后,内存地址发生变化,变量a=1 —> a=2时,内存地址也发生变化。

Python 基础数据类型_第2张图片

演示代码

"""
id() 方法:获取操作系统内存地址
"""
# 不可变类型的演示
a = 1
print(id(a))
a = 2
print(id(a))

# 不可变类型的演示
b = [1, 2, 3, 4]
print(id(b))
b.append(5)  # append()方法,给可变类型list种新增一个值
print(id(b))

执行结果:
Python 基础数据类型_第3张图片

2.2、Number(数字)

Python3 支持 int、float、bool、complex(复数)。在Python 3里,只有一种整数类型 int,表示为长整型。

Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True=1、False=0 会返回 True,但可以通过 is 来判断类型。

2.2.1、number类型的创建

"""
number类型的创建
python 数据类型数字:int、float、bool、complex(复数)
# type()方法:返回变量所属类型
"""
a = 10
print(type(a), a)
b = 10.0
print(type(b), b)
c = True
print(type(c), c)
# True=1,是int的子类,可以进行想加减
print('a+c:', a+c)

执行结果:
Python 基础数据类型_第4张图片

2.2.2、数值运算

a = 10, b = 6

运算符 运算符 实例
+ 加 - 两个对象相加 加(a+b): 16
- 减 - 得到负数或是一个数减去另一个数 减(a-b): 4
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 乘(a*b): 60
/ 除 - x 除以 y 除(a/b): 1.6666666666666667
% 取模 - 返回除法的余数 取模(a%b): 4
** 幂 - 返回x的y次幂 幂(a**b): 1000000
// 取整除 - 往小的方向取整数 取整除(a//b): 1
"""
python 数值运算
"""
a = 10
b = 6
print('加(a+b):', a+b)
print('减(a-b):', a-b)
print('乘(a*b):', a*b)
print('除(a/b):', a/b)
print('取模(a%b):', a%b)
print('幂(a**b):', a**b)
print('取整除(a//b):', a//b)

Python 基础数据类型_第5张图片

2.3、String(字符串)

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

字符串的截取的语法格式如下:变量[头下标:尾下标], 取值的时候取头不取尾

Python 基础数据类型_第6张图片

# Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
print('-----Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始-----')
str1 = 'Runoob'
print(str1[0:1])    # R
print(str1[0:2])    # Ru
print(str1[0:-1])   # Runoo
print(str1[0], str1[5])

# 字符串可以用+运算符连接在一起,用*运算符重复。
print('-----字符串可以用+运算符连接在一起,用*运算符重复-----')
print(str1 + '测试')
print(str1*2)

# 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
print('-----反斜杠可以用来转义,使用r可以让反斜杠不发生转义-----')
print('Ru\noob')
print(r'Ru\noob')

# 字符串不可变类型,不能变化,会报错
print('-----字符串不可变类型,不能变化,会报错-----')
str1[0] = 'm'

Python 基础数据类型_第7张图片

注意:
1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
2、字符串可以用+运算符连接在一起,用*运算符重复。
3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
4、Python中的字符串不能改变。

2.4、bool(布尔类型)

布尔类型即 True 或 False。
在 Python 中,True 和 False 都是关键字,表示布尔值。
布尔类型可以用来控制程序的流程,比如判断某个条件是否成立,或者在某个条件满足时执行某段代码。
布尔类型特点:

  • 布尔类型只有两个值:True 和 False。
  • 布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python 会将True 视为 1,False 视为 0。
  • 布尔类型可以和逻辑运算符一起使用,包括 and、or 和not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值。
  • 布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0。

a = True
b = False

# 比较运算符
print(2 < 3)   # True
print(2 == 3)  # False

# 逻辑运算符
print(a and b)  # False
print(a or b)   # True
print(not a)    # False

# 类型转换
print(int(a))   # 1
print(float(b)) # 0.0
print(str(a))   # "True"

注意: 在 Python 中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为 True,只有 0、空字符串、空列表、空元组等被视为 False。因此,在进行布尔类型转换时,需要注意数据类型的真假性。

2.5、List(列表)

List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表截取的语法格式如下:变量[头下标:尾下标], 取值的时候取头不取尾。
同字符串的截取方式,只是下标指向不同

Python 基础数据类型_第8张图片

"""
list[开始下标:结束下标:步长"]
开始下标:开始截取的地方(包含)
结束下标:结束截取的地方(不包含)
步长:每走几步截取一次
"""
list11 = ['a', 'b', 'c', 'd', 'e', 'f', 10, 2.0]
list22 = ['7654321', '1234567']
print(list11[0])        # 输出第一个变量,原因下标从0开始
print(list11[0:2])      # 输出第1、2变量
print(list11[1:3])      # 输出第2、3变量
print(list11[3:-1])     # 输出第4个变量开始,到最后一个,不包含最后一个,截取时取头不取尾
print(list11[3:])       # 输出第4个变量开始,到最后一个
print(list11 + list22)  # 两个字符串想加
print(list22 * 2)       # 字符串值重复,共计2次
print(list11[1:-1:2])   # 输出第2个变量开始,每隔2步输出一次,直至最后一个变量(不包含)

Python 基础数据类型_第9张图片

2.6、Tuple(元组)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
但构成包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号

可以将元组理解成不可以变化的列表,同样的也可以把字符串看作一种特殊的元组。
元组:不可变类型的列表
字符串:特殊的元组

"""
tuple[开始下标:结束下标:步长"]
开始下标:开始截取的地方(包含)
结束下标:结束截取的地方(不包含)
步长:每走几步截取一次
"""
list11 = ('a', 'b', 'c', 'd', 'e', 'f', 10, 2.0)
list22 = ('7654321', '1234567')
print(list11[0])                # 输出第一个变量,原因下标从0开始
print(list11[0:2])              # 输出第1、2变量
print(list11[1:3])              # 输出第2、3变量
print(list11[3:-1])             # 输出第4个变量开始,到最后一个,不包含最后一个,截取时取头不取尾
print(list11[3:])               # 输出第4个变量开始,到最后一个
print(list11[1:-1:2])           # 输出第2个变量开始,每隔2步输出一次,直至最后一个变量(不包含)
aaa_tuple = list11 + list22     # 两个字符串想加,但是内存地址指向发生变化(元组是不可变类型)
print(id(list11))               
print(id(list22))
print(id(aaa_tuple))
bbb_tuple = list22 * 2          # 字符串值重复,共计2次,但是内存地址指向发生变化(元组是不可变类型)
print(id(list11))
print(id(list22))
print(id(bbb_tuple))

Python 基础数据类型_第10张图片
string、list 和 tuple 都属于 sequence(序列)。
注意:
1、与字符串一样,元组的元素不能修改。
2、元组也可以被索引和切片,方法一样。
3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
4、元组也可以使用+操作符进行拼接。

2.7、Set(集合)

Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。
集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔。
另外,也可以使用 set() 函数创建集合。
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

"""集合的创建方法"""
parame = {value01,value02,...}
parame = set()

"""集合功能演示"""
sites = {'python', 'java', 'c', 'c++', 'go', 'go'}
print(sites)   # 输出集合,重复的元素被自动去掉且无序

# 成员测试
if 'python' in sites :
    print('python 在集合中')
else:
    print('python 不在集合中')

# set可以进行集合运算
a = set('abcdefgabcdefg')
b = set('bcdqwerqwer')
print(a)
print(b)
print(a - b)     # a 和 b 的差集
print(a | b)     # a 和 b 的并集
print(a & b)     # a 和 b 的交集
print(a ^ b)     # a 和 b 中不同时存在的元素

2.8、Dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。

student_dict = {}                   # 创建一个空字典, 集合需要用set()创建,不能直接使用{}。
student_dict['name'] = 'tom'        # 字典添加: key=name, value=tom 的组key-value值
student_dict['age'] = 18            # 字典添加: key=age, value=18 的组key-value值

print (student_dict['name'])        # 输出键为 'name' 的值
print (student_dict['age'])         # 输出键为 'age' 的值
print (student_dict)                # 输出完整的字典
print (student_dict.keys())         # 输出所有键
print (student_dict.values())       # 输出所有值

Python 基础数据类型_第11张图片
注意:

1、字典是一种映射类型,它的元素是键值对。
2、字典的关键字(key)必须为不可变类型,且不能重复。
3、创建空字典使用 { }。

总结

本文简单的向大家介绍了python的6中数据类型,希望大家可以喜欢!
不积跬步无以至千里,大家一起加油呀!

你可能感兴趣的:(python,开发语言)