基本数据类型
一、有哪些基本数据类型
-
数字类型
-
整数类型(int)
-
浮点类型(float)
-
-
字符串类型(str)
-
列表类型(list)
-
字典类型(dict)
-
布尔类型(bool)
-
元组类型(tuple)
-
集合类型(set)
二、为什么要学习基本数据类型
- 有助于我们理解不同的基本数据类型在计算机中的表示和操作方式
- 不同的基本数据类型应用于不同的场景,有助于我们编写更加高效和健壮的代码
- 事物有着不同的状态,而用来表示这些状态的变量就需要不同的数据类型来表示
三、数字类型(整数类型/浮点类型)
[1]整数类型(int)
(1)特点
- 整数类型用于表示整数,是一种基本的数字类型,常用于计数和索引
(2)定义
-
在Python中,整数类型的定义通过直接赋予一个整数值
number = 20
[2]浮点类型
(1)特点
- 浮点类型用于表示带有小数部分的数值,适用于更加精确的情景
(2)定义
-
在Python中,浮点类型的定义通过直接赋予一个带小数的数值
number = 3.14
[3]使用
-
在计算时,整数型可以和浮点型进行加减乘除等运算,结果时会以浮点型输出
num1 = 20 num2 = 20.0 print(num1 + num2) # 40.0 print(type(num1 + num2)) #<class 'float'>
-
我们可以通过比较运算符来比较数字的大小,这样可以得到布尔类型的结果
num1 = 20 num2 = 20.0 print(num1 == num2) # True print(type(num1 == num2)) # <class 'bool'>
四、字符串类型(str)
[1]特点
- 字符串类型用于表示文本信息,是一种非常重要的数据类型,用于处理文字、字符等信息
[2]定义
- 字符串可以用单引号、双引号、三引号来定义
name_1 = 'Xanadu'
name_2 = "Xanadu"
name_3 = '''Xanadu''' # 通常用于注释
name_4 = """Xanandu""" # 通常用于注释
- 用引号引起来的部分就是对应变量的变量值
[3]使用
(1)相加
- 字符串可以通过
+
来进行字符串的拼接
msg_1 = 'Hello'
msg_2 = 'World'
print(msg_1 + msg_2) # HelloWorld
(2)相乘
- 字符串可以通过
*
来进行重复拼接字符串
msg_1 = 'Hello'
print(msg_1 * 10) # HelloHelloHelloHelloHelloHelloHelloHelloHelloHello
[4]补充
(1)引号嵌套的配对问题
- 当赋值出现引号时,第一个引号会同下一个距离最近的相同引号配对
- 我们在赋值字符串类型的数据时,要注意引号的使用
# 正确:双引号内部,可以使用单引号,并且可以使用多个单引号
msg_1 = 'I"m 20 year old , I want to say "thank you " to my parents '
# 正确:单引号内部,可以使用双引号,并且可以使用多个双引号
msg_2 = "I'm 20 year old , I want to say 'thank you ' to my parents "
# 错误: 单引号内部,嵌套了单引号,会导致语法错误 ---- unterminated string literal
msg_1 = 'I'm 20 year old , I want to say 'thank you ' to my parents '
(2)多行字符串
- 通过三引号可以定义多行字符串
msg_1 = '''
天可补,海可填,南山可移。日月既往,不可复追。那转瞬即逝、不可逆转的岁每个人
的时间都是一样的。而机遇往往只偏爱那些有准备的人,倘若不抓紧时间,充实自己,你便只
能看着机会溜走,在余生的懊悔中惶惶度日。
'''
msg_2 = """
天可补,海可填,南山可移。日月既往,不可复追。那转瞬即逝、不可逆转的岁每个人
的时间都是一样的。而机遇往往只偏爱那些有准备的人,倘若不抓紧时间,充实自己,你便只
能看着机会溜走,在余生的懊悔中惶惶度日。
"""
(3)字符串的索引取值
- 字符串属于序列类型,所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们
-
我们不仅可以支持正向索引还可以支持反方向的负数索引,如图所示
msg = 'HelloWorld' # 我们要取到'W'这个字符就有两种方式 print(msg[5]) # W print(msg[-5]) # W
(4)格式化输出
- 格式化输出是print()函数的一种使用方法
①使用%s,%d等占位符
-
占位符的类型
%d
:整数%s
:字符串%f
:浮点数%x
:十六进制整数
name = 'Xanadu' age = 20 height = 176.5 print('my name is %s , I am %d years old , I am %f cm tall' % (name, age, height))
-
使用
%f
占位符时默认保留六位小数,使用要在f
字母前加上.x
来限制小数点位数 -
在一次输出中使用多个占位符代表不同的数据时,变量名需要由括号括起来,并以逗号间隔
②format输出
-
使用
format
方法进行格式化输出,通过花括号{}
表示占位符,然后调用format
方法传入实际值name = 'Xanadu' age = 20 height = 176.5 print('my name is {} , I am {} years old , I am {} cm tall' .format(name, age, height)) # my name is Xanadu , I am 20 years old , I am 176.5 cm tall
-
该输出方法的花括号中不仅可以放变量名还可以放入表达式进行计算
③f + {}输出
-
使用 f-string(f +
{}
)进行格式化输出,通过在字符串前加上f
或F
前缀,然后在字符串中使用{}
表示占位符,并在{}
中直接引用变量。name = 'Xanadu' age = 20 height = 176.5 print(f'my name is {name} , I am {age} years old , I am {height} cm tall') # my name is Xanadu , I am 20 years old , I am 176.5 cm tall
(5)字符串的转义
-
在字符串中,转义字符用于表示一些特殊字符或执行一些特殊操作,常用的转义字符如下:
\n
:换行符,将光标位置移到下一行开头\r
:回车符,将光标位置移到本行开头。\t
:水平制表符,也即 Tab 键,一般相当于四个空格。\b
:退格(Backspace),将光标位置移到前一列print("Hello\nWorld") # Hello # World print("Name\tAge") # Name Age print("One \rTwo Three") # Two Three print("One Two \bThree") # One TwoThree
五、列表类型(list)
[1]特点
- 用来存取多个相同属性的值,并且方便存取
[2]定义
- 列表的数据值使用中括号括起来,并使用逗号分隔
student_name = ['张三', '李四', '王五']
print(student_name)
# ['张三', '李四', '王五']
- 列表也可以使用索引取值,但由于列表中每个数据值都分隔开来,所以就十分方便存取,且可以存放任意类型元素
[3]使用
- 列表类型是用索引来对应值,索引代表的是数据的位置,从0开始计数
student_name = ['张三', '李四', '王五']
name1 = student_name[0]
name2 = student_name[1]
print(name1) #张三
print(name2) #李四
五、字典类型(dict)
[1]特点
- 能够非常明确的把每一个元素值的含义表示出来
- 字典就是使用大括号括起来,内部存放多个元素值,元素与元素之间使用逗号
- 隔开元素类型是key:value的形式,key是对value的解释型信息,value才是真正的变量值
[2]定义
info = {'name': "Xanadu", 'age': 18, 'hobby': 'music', 'numbering': 666}
print(info)
# {'name': 'Xanadu', 'age': 18, 'hobby': 'music', 'numbering': 666}
print(type(info))
# <class 'dict'>
[3]使用
(1)字典取值
-
字典不能通过索引取值,只能通过字典的K取值
info = {'name': "Xanadu", 'age': 18, 'hobby': 'music', 'numbering': 666} print(f""" my name is {info['name']}, I am {info['age']} years old, my hobby is {info['hobby']}, my numbering is {info['numbering']} . """) ''' my name is Xanadu, I am 18 years old, my hobby is music, my numbering is 666 . '''
(2)字典的嵌套以及取值
class301 = {'classnumber': 3, 'student': ['张三', '李四', '王五'],
'numbering': 301, 'honor': {'Math': 1, 'English': 2}}
print(f"""
{class301['numbering']}班有{class301['classnumber']}个学生,
他们班数学全年级第{class301['honor']['Math']},
英语全年级第{class301['honor']['English']}
""")
'''
301班有3个学生,
他们班数学全年级第1,
英语全年级第2
'''
六、布尔类型(bool)
[1]特点
- 布尔类型用于表示逻辑值,只有两个取值:True 和 False。
- 布尔类型经常用于控制程序的流程,例如条件判断、循环等
[2]定义
- 布尔类型的两个取值 True 和 False 的首字母在Python中必须大写
- 布尔类型的变量名通常以is开头
is_happy = True
is_lose = False
[3]使用
(1)条件判断
iis_win = True
if is_win:
print('you win ,you must be happy')
else:
print('you lose , you mybe unbappy ')
# you win ,you must be happ
#因为is_win的布尔类型取值为True,满足了if条件,所以执行if下的代码
(2)比较运算
x = 4
y = 2
is_right = x > y
print(is_right) # True
# 因为4大于2 ,比较成立,所以布尔类型取值Ture
七、元组类型(tuple)
[1]特点
- 元组类型是一种不可变类型,可以储存多个元素
- 元组通常用于存储相关联的数据,保持数据的完整性。
[2]定义
- 元组通常使用小括号
()
定义,其中的元素可以是不同的数据类型,使用逗号,
隔开
tuple_1 = ("Xanadu", 18, 176.5, 666)
print(tuple_1) # ("Xanadu", 18, 176.5, 666)
print(type(tuple_1)) # <class 'tuple'>
[3]使用
-
元组可以使用索引取值
tuple_1 = ("Xanadu", 18, 176.5, 666) print(tuple[0]) # Xanadu
-
元组支持基本的操作,如切片、拼接等
tuple_1 = ("Xanadu", 18, 176.5, 666) sliced_tuple = tuple_1[1:3] print(sliced_tuple) # (18, 176.5)
-
元组解包是一种将元组中的元素分配给多个变量的方法。
tuple_1 = ("Xanadu", 18, 176.5, 666) a, b, c, d = tuple_1 print(a) # Xanadu print(b) # 18 print(c) # 176.5 print(d) # 666
-
元组可以用于函数返回多个值;因为元组的不可变性,元组还可以作为字典的键
# 函数返回多个值 def get_coordinates(): return 10, 20, 30 x, y, z = get_coordinates() print(x, y, z) # 10 20 30 # 元组作为字典的键 coordinates_dict = {(1, 2, 3): 'Point A', (4, 5, 6): 'Point B'} print(coordinates_dict[(1, 2, 3)]) # Point A
八、集合类型(set)
[1]特点
- 集合是一种无序、不重复的数据类型,用于存储多个独立的元素(可以储存不变的元组)。
[2]定义
-
集合通过大括号
{}
定义,其中的元素是不可重复的,可以包含不同的数据类型。 -
可以使用
set()
构造函数创建集合。set_1 = {"Xanadu", 18, 176.5, 666} print(set_1) # {176.5, 'Xanadu', 18, 666} 无序的输出 print(type(set_1)) # <class 'set'>
[3]使用
-
集合支持基本的操作,如添加元素、删除元素、成员测试等。
# 集合的添加元素 set_1 = {"Xanadu", 18, 176.5, 666} set_1.add("music") print(set_1) #集合的删除元素 set_1.remove(176.5) print(set_1) # {18, 'Xanadu', 666} # 集合的成员测试 iis_number = 18 in set_1 print(is_number) # True
-
集合可以进行多种集合运算,如并集,差集,交集等
set_1 = {1, 2, 3, 4} set_2 = {3, 4, 5, 6} # 并集 {1, 2, 3, 4, 5, 6} print(set_1.union(set_2)) # 交集 {3, 4} print(set_1.intersection(set_2)) # set_2 相对于 set_1 的差集 print(set_1.difference(set_2)) # set_1 相对于 set_2 的差集 print(set_2.difference(set_1))
-
因为集合的不可重复性我们可以使用集合进行去重
set_1 = {1, 4, 2, 2, 3, 6, 5, 5, 5} print(set_1) # {1, 2, 3, 4, 5, 6}