八大数据类型

【一】八大基本数据类型

  • 数字类型

    • 整数类型(int)

    • 浮点类型(float)

  • 字符串类型(str)

  • 列表类型(list)

  • 字典类型(dict)

  • 布尔类型(bool)

  • 元组类型(tuple)

  • 集合类型(set)

【1】数字类型

(1)整数类型

  • 整数类型用于表示整数,广泛用于表示计数、索引等整数值

  • 在python中,整数类型的定义是直接赋予一个整数值

age = 18
# 查看变量名
print(age)  # 18
# 查看地址
print(id(age))  # 1853270917904
# 查看数据类型
print(type(age))#<class 'int'>
  • 整数型可以参与各种数学运算,加减乘除等

(2)浮点类型

  • 浮点类型用于表示带有小数点的部分,适用于需要更精确数值表示的情况

  • 就是通过数字后面添加小数点

    age = 1.88
    print(age)#1.88
    print(id(age))#1776489613616
    print(type(age))#<class 'str'>

[3]数字类型的应用

  • 整数和浮点数可以进行常见的数学运算,包括加法、减法、乘法、除法等。

  • str = 1.88
    int = 88
    age = str + int
    print(age)  # 89.88
    print(id(age))  # 2314768730832
    print(type(age))  # <class 'float'>
  • 我们可以使用比较运算符(如<><=>=)来比较数字的大小,得到布尔类型的结果

  • str = 1.88
    int = 88
    compare = str > int
    print(compare)  # False
    print(id(compare))  # 140706766773128
    print(type(compare))  # <class 'bool'>
    结果是False(不正确)】

[2]字符串类型

  • 字符串用于表示文本信息,是一种非常重要的数据类型,用于处理文字,字符等信息

(1)单行字符串

  • 字符可以使用单引号,双引号,三引号进行定义

  • Name = 'dream'
    Name = "dream"
    Name = '''dream'''
    Name = """dream"""#
    (当左边有赋值符号和遍历名的时候,它就是字符串)
    ​
    上面是例子
  • 引号的嵌套需要注意,外层是单引号时,内层应使用双引号

  • 如果需要在字符串中包含引号,可以灵活运用不同类型的引号

(2)多行字符串

  • 通过三引号(单引号或双引号)可以定义多行字符串,方便表示包含换行的文本内容

#三引号支持多行文本内容
msg_1 = '''         
    天下只有两种人。比如一串葡萄到手,一种人挑最好的先吃,另一种人把最好的留到最后吃。
    照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的;
    第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。 
    不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆,
    '''
msg_1 = """        
    天下只有两种人。比如一串葡萄到手,一种人挑最好的先吃,另一种人把最好的留到最后吃。
    照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的;
    第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。 
    不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆,
    """

(3)使用

  • 字符串只能进行加 和 乘

  • 相加

    greeting = "Hello"
    name = "Dream"
    message = greeting + ", " + name + "!"
    ​
    print(message)  # Hello, Dream!
  • 相乘

  • 就是让你的变量值相乘几次

divider = "-" * 20
​
print(divider) # --------------------

(4)索引取值

  • 字符串属于序列类型,所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。

image-20231116105406123

msg = 'Hello World'

print(len(msg))  # 11
# 取索引为 0 的位置的元素
print(msg[0])  # H
# 取索引位置为 10 的元素 (上面打印的长度为11,但是我们是从 0 开始计数的,所以是 11-1=10)
print(msg[10])  # d
  • Python 还支持索引值是负数,此类索引是从右向左计数,换句话说,从最后一个元素开始计数,从索引值 -1 开始,如图 所示。

image-20231116105650426

msg = 'Hello World'

print(len(msg))  # 11
# 取索引为 -1 的位置的元素
print(msg[-1])  # d
# 取索引位置为 -11 的元素 (上面打印的长度为11,但是我们是从 -1 开始计数的,所以是 -11)
print(msg[-11])  # H

(5)%输出

  • name = 'dream'
    age = 18
    height = 175.5
    print('My name is %s;My age is %d;My height is %f' % (name, age))#My name is dream;My age is 18;My height is 175.5
  • 在上例中,%s%d 是占位符,分别表示字符串和整数,而 (name, age) 是传入这两个占位符的实际值。

  • 占位符类型

    • %s:字符串

    • %d:整数

    • %f:浮点数

    • %x:十六进制整数

(6)formate 输出

  • 使用 format 方法进行格式化输出,通过花括号 {} 表示占位符,然后调用 format 方法传入实际值

name = "Dream"
age = 18
# 格式化输出语法三 : formate
print("My name is {}; My age is {}".format(name, age))
# My name is Dream; My age is 18
  • 在这个例子中,{} 是占位符,它会按顺序依次填充传入 format 方法的值

(7)f + {} 输出

  • 使用 f-string(f + {})进行格式化输出,通过在字符串前加上 fF 前缀,然后在字符串中使用 {} 表示占位符,并在 {} 中直接引用变量。

name = "Dream"
age = 18
# 格式化输出语法二 : f + {}
print(f"My name is {name}; My age is {age}")
# My name is Dream; My age is 18

(8)字符串的转义

  • 在字符串中,转义字符用于表示一些特殊字符或执行一些特殊操作,常用的转义字符如下:

转义字符说明
\n换行符,将光标位置移到下一行开头。
\r回车符,将光标位置移到本行开头。
\t水平制表符,也即 Tab 键,一般相当于四个空格。
\a蜂鸣器响铃。注意不是喇叭发声,现在的计算机很多都不带蜂鸣器了,所以响铃不一定有效。
\b退格(Backspace),将光标位置移到前一列。
\反斜线
'单引号
"双引号
\在字符串行尾的续行符,即一行未完,转到下一行继续写。

# 换行符
print("Hello\nWorld")
# Hello
# World

# 制表符
print("Name\tAge")
# Name    Age

# 反斜线
print("This is a backslash: \\")
# This is a backslash: \

# 单引号
print("I'm a programmer.")
# I'm a programmer.

# 双引号
print("He said, \"Hello.\"")
# He said, "Hello."

# 回车符与退格符
print("One\rTwo\bThree")
# Two Three

[3]列表类型

  • 存取多个相同属性的值,并且方便存取

  • 如果我们需要用一个变量记录多个学生的姓名,用数字类型是无法实现,字符串类型则可以记录下来

# 字符串类型
stu_names=’张三 李四 王五’
# 列表类型
names_list = ['张三', '李四', '王五']
  • 存的目的是为了取,此时若想取出第二个学生的姓名实现起来相当麻烦

  • 而列表类型就是专门用来记录多个同种属性的值(比如同一个班级多个学生的姓名、同一个人的多个爱好等),并且存取都十分方便

[1】索引取值

  • 列表类型是用索引来对应值,索引代表的是数据的位置,从0开始计数

# 列表类型
names_list = ['张三', '李四', '王五']

# 索引取值
first_student = names_list[0]
print(first_student)  # 输出结果:张三

second_student = names_list[1]
print(second_student)  # 输出结果:李四

(2)列表嵌套及嵌套取值

  • 列表可以嵌套在其他列表中,形成二维或多维数组,通过嵌套的方式可以方便地处理复杂的数据结构。

# 列表嵌套
class1 = ['张三', '李四', '王五']
class2 = ['Tom', 'Jerry', 'Spike']
classes = [class1, class2]

# 嵌套取值
student_1_class_1 = classes[0][0]
print(student_1_class_1)  # 输出结果:张三

student_2_class_2 = classes[1][1]
print(student_2_class_2)  # 输出结果:Jerry

【四】字典类型

  • 如果我们需要用一个变量记录多个值,但多个值是不同属性的

    • 比如人的姓名、年龄、身高,用列表可以存,但列表是用索引对应值的,而索引不能明确地表示值的含义

  • 这就用到字典类型,字典类型是用key:value形式来存储数据

    • 其中key可以对value有描述性的功能,能够明确的描述详细信息

person_info = {'name': 'Dream', 'age': 18, 'height': 185.3, 'hobby': ["动漫", "小说"]}

print(person_info)  # {'name': 'Dream', 'age': 18, 'height': 185.3, 'hobby': ['动漫', '小说']}

print(type(person_info))  # <class 'dict'>

【1】字典取值(键取值)

  • 字典不能通过索引取值

person_info = {'name': 'Dream', 'age': 18, 'height': 185.3, 'hobby': ["动漫", "小说"]}

# 字典取值(键取值)
name = person_info['name']
print(name)  # 输出结果:Dream

age = person_info['age']
print(age)  # 输出结果:18

(2)字典嵌套及取值

# 字典嵌套及取值
student1 = {'name': 'Tom', 'age': 18}
student2 = {'name': 'Jerry', 'age': 19}
classroom = {'student1': student1, 'student2': student2}

# 取值
student1_name = classroom['student1']['name']
print(student1_name)  # 输出结果:Tom

student2_age = classroom['student2']['age']
print(student2_age)  # 输出结果:19
#练习

info={
     'name':'Dream',
     'addr':{
           '国家':'中国',
           'info':[666,999,{'编号':466722,'hobby':['read','study','music']}]
     }
}

#print('my name is {} 我的国家{} 我的编号{} 我的爱好{} 我的幸运数字{}')
print(f'''
my name is {info['name']}
my contry is {info['addr']['国家']}
我的编号{info['addr']['info'][2]['编号']}
我的爱好{info['addr']['info'][2]['hobby'][2]}
我的幸运数字{info['addr']['info'][0]}
''')

【五】布尔类型

  • 布尔类型用于表示逻辑值,只有两个取值:True (真的)和 False(假的)。

  • 在编程中,布尔类型经常用于控制程序的流程,例如条件判断、循环等。

  • 定义

    • 布尔类型只有两个取值:True 和 False。在 Python 中,首字母必须大写

    • 布尔值的命名规范:结果可能是布尔值的情况,我们都采用 is 开头 命名

【1】条件判断(判断对错)

  • 布尔类型常常用于条件判断

name = ""
name = []
name = {}
print(bool(name))  # False
name = 1
print(bool(name))  # True

【2】在python中典型的真或假的情况

  • 什么时候为真

  • 数字1为真

  • 什么时候为假

  • 不存在的情况:空值为假,空的字符串、空的列表、空的字典、空的元组、数字 0

  • 非空列表、非空字典、非空集合等: 如果容器类型中包含元素,被视为真。

  • 非空字符串: 非空字符串被视为真。

  • 非零数字: 除了零之外的任何整数或浮点数都被视为真。

  • 布尔值为 True: True 本身表示真。

  • 布尔值为 False: 显而易见,False 本身就表示假。

  • 数字零: 数字类型中,整数或浮点数中的零被视为假。

  • 空字符串: 空字符串 '' 被视为假。

  • 空列表、空字典、空集合等: 对于容器类型,如果它们为空,被视为假。

[六]元组类型

  • 元组(tuple)是一种不可变的序列类型,类似于列表,用于存储多个有序元素。

  • 元组与列表的主要区别在于元组的元素不能被修改、删除或添加,是不可变的数据类型。

  • 元组通常用于存储相关联的数据,保持数据的完整性。

[1]定义

  • 元组通过小括号 () 定义,其中的元素可以是不同的数据类型,用逗号 , 分隔。

  • 可以使用索引访问元素

# 定义元组
my_tuple = (1, 'hello', 3.14, True)

# 访问元组元素
first_element = my_tuple[0]
second_element = my_tuple[1]

print(first_element)  # 1
print(second_element)  # 'hello'

[2]元组的不可变性

  • 由于元组是不可变的,不能对元素进行修改、删除或添加

my_tuple = (1, 'hello', 3.14, True)
# 尝试修改元组的元素(会报错)
my_tuple[0] = 42  # TypeError: 'tuple' object does not support item assignment

# 尝试删除元组的元素(会报错)
del my_tuple[1]  # TypeError: 'tuple' object doesn't support item deletion

# 尝试添加元素到元组(会报错)
my_tuple.append('new_element')  # AttributeError: 'tuple' object has no attribute 'append'

[3]元组的基本操作

  • 元组支持基本的操作,如切片、拼接等。

my_tuple = (1, 'hello', 3.14, True)
# 切片操作
sliced_tuple = my_tuple[1:3]
print(sliced_tuple)  # ('hello', 3.14)

# 拼接操作
new_tuple = my_tuple + ('world', False)
print(new_tuple)  # (1, 'hello', 3.14, True, 'world', False)

[4]元组解包

  • 元组解包是一种将元组中的元素分配给多个变量的方法。(解压赋值)

my_tuple = (1, 'hello', 3.14, True)
​
# 元组解包
a, b, c, d = my_tuple
​
print(a)  # 1
print(b)  # 'hello'
print(c)  # 3.14
print(d)  # True
  • 元组是一个灵活且强大的数据类型,适用于许多场景,特别是需要不可变性的情况

[七]集合类型(set)

  • 集合(set)是一种无序、不重复的数据类型,用于存储多个独立的元素。

  • 集合通常用于去除重复元素,执行集合运算(如并集、交集、差集等),以及检查成员资格

【1】定义

  • 集合通过大括号 {} 定义,其中的元素是不可重复的,可以包含不同的数据类型。

# 集合类型中不能存放的元素类型是 字典和列表 : 因字典和列表是可变数据类型不能被 hash
num = {1, 2, 3, 'name', 'dream', 4, 1.11, 5, 5, 5, 5, 5, 5}
print(num)
# {1, 2, 3, 4, 1.11, 5, 'dream', 'name'}
  • 集合的不可重复性

    • 集合中的元素是不可重复的,即相同的元素不会重复存储。

    unique_set = {1, 2, 3, 1, 2, 4, 5}
    print(unique_set)  # {1, 2, 3, 4, 5}
  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值