Python入门 - 数据类型

简介: 这个系列是去年的时候给西门子电力的工程师培训Python入门课程准备的讲义~ 分享出来,仅供学习~ 本节是《Python入门-1.3 数据类型》

1.3 数据类型

标准数据类型

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

    • Number(数字)

      • int
      • bool
      • float
      • complex(复数)
    • String(字符串)
    • List(列表)
    • Tuple(元组)
    • Sets(集合)
    • Dictionary(字典)


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

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
可变类型定义:变量值改变但是变量地址不会改变
不可变类型定义:变量值改变,变量地址必须改变
# 可变类型
list1 = [1, 2, 3, 4, 5]
print(id(list1)) #list1的内存地址
list2 = list1
print(id(list2)) #list2的内存地址
list1.remove(1)
print(id(list1), id(list2)) #修改值后的list1,list2的内存地址
print(list2)

# 不可变类型
str1 = "点赞哦"
str2 = str1
print(id(str1), id(str2))
str1 = "这次一定"
print(id(str1), id(str2))

print(str1, str2)



类型检查

如何知道一个变量的类型呢?
  • 内置的 type() 函数可以用来查询变量所指的对象类型。(Python是面向对象的语言)
  • 此外还可以用 isinstance 来判断
# 使用type()获取类型
a, b, c, d = 20, 5.5, True, 4+3j
e = "Demo"
print(type(a), type(b), type(c), type(d), type(e))
# 输出
# <class 'int'> <class 'float'> <class 'bool'> <class 'complex'> <class 'str'>

# isinstance()判断类型
a = 111
print(isinstance(a, int))
# 输出
# True

isinstance 和 type 的区别
  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。
class A:
    pass

class B(A):
    pass

ans_1 = isinstance(A(), A)  # returns True
ans_2 = type(A()) == A      # returns True
ans_3 = isinstance(B(), A)    # returns True
ans_4 = type(B()) == A        # returns False

print(ans_1, ans_2, ans_3, ans_4)
# 输出
# True True True False

Python数据类型转换

  • 有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
  • 以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值
函数 描述
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) 将一个整数转换为一个字符
unichr(x) 将一个整数转换为Unicode字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串

数据类型转换分类

  • 数据类型转换一共分为2类:自动数据类型转换(隐式转换)和强制数据类型转换(显示转换)

自动数据类型转换/隐式转换

  • 自动类型转换是程序根据运算要求进行的转换,不需要人工干预

    • 1.自动类型转换不需要人工干预
    • 2.自动类型转换多发生在运算或者判断过程中
    • 3.转化时向着更加精确的类型转换
a = 1.0
b = 1
c = a + b
print(type(a), type(b), type(c)

强制类型转换/显示转换

  • 根据程序需要,由编写程序人员人为改变数据类型的方式就是强制数据类型转换。
  • int() 将其他类型转化为整型
1.数字整型转化之后,还是原来的味道
2.浮点类型转化之后,舍去小数部分
3.布尔值转化之后 True -> 1 False->0
4.字符串转换,仅纯整型字符串可以转化(浮点型或者带有其他字符都不可以转化)
5.复数不可以转换
  • float() 将其他类型转化为浮点型
1.整型转换之后变为浮点型,后面+.0
2.浮点数不需要转化,转化也不会变化
3.布尔值转化 True->1.0  False ->0.0
4.字符串,纯整型字符串和纯浮点型字符串可以转换,其他都不可以
  • complex() 将其他数据转化为复数
1.整型转换之后变为 (整型+0j)
2.浮点型转换之后变为(浮点型 + 0j)
3.布尔值转化之后 True->(1+0j) False(0j)
4.字符串,纯整型和浮点型字符串可以转化,其他都不行
5.复数,无需转换
  • bool() 将其他类型转化为布尔值
#下面转化为布尔值false的情况
    1.整型   0
    2.浮点型  0.0
    3.复数  0+0j
    4.布尔  False
    5.字符串  '' 空字符串
    6.列表   [] 空列表
    7.元组   ()空元组
    8.字典   {} 空字典
    9.集合   set() 空集合
  • str() 将其他类型转化为字符串

    • 所有转换均改变类型为字符串,表示方式依旧不变
  • list() 将其他类型转化为列表类型

    • 在python中有5中可迭代序列,可以互相转换,他们分别是:
    • 字符串,列表,元组,字典,集合
var = ('张三','李四','王老五')
newvar = list(var)
newvar的值为 ['张三','李四','王老五']
  • 注意:

    • 1.字符串转换时每个字符变成列表中的一个值
    • 2.字典类型转换时,仅将字典的键部分转换成列表,忽略值部分
  • tuple() 将其他类型转化为元组类型
var = {'张三','李四','王老五'}
newvar = tuple(var)
newvar的值为 ('张三','李四','王老五')
  • 注意:

    • 1.字符串转换时每个字符变成元组中的一个值
    • 2.字典类型转换时,仅将字典的键部分转换成元组,忽略值部分
  • set() 将其他类型转化为集合类型
var = ['张三','李四','王老五']
newvar = set(var)
newvar的值为 {'张三','李四','王老五'}  #值的顺序不定
  • 注意:

    • 1.字符串转换时每个字符变成集合中的一个值
    • 2.字典类型转换时,仅将字典的键部分转换集合,忽略值部分
  • dict() 将其他类型转换为字典类型
  • 其他类型转化为字典时需要按照指定的格式才可以转化:(列表和元组的组合可以)
[['cat', '黑猫警长'], ['mouse', '一只耳'], ['next', '请看夏季']]
[('cat', '黑猫警长'), ('mouse', '一只耳'), ('next', '请看夏季')]
目录
相关文章
|
1天前
|
缓存 算法 数据处理
Python入门:9.递归函数和高阶函数
在 Python 编程中,函数是核心组成部分之一。递归函数和高阶函数是 Python 中两个非常重要的特性。递归函数帮助我们以更直观的方式处理重复性问题,而高阶函数通过函数作为参数或返回值,为代码增添了极大的灵活性和优雅性。无论是实现复杂的算法还是处理数据流,这些工具都在开发者的工具箱中扮演着重要角色。本文将从概念入手,逐步带你掌握递归函数、匿名函数(lambda)以及高阶函数的核心要领和应用技巧。
Python入门:9.递归函数和高阶函数
|
1天前
|
开发者 Python
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
|
1天前
|
存储 SQL 索引
Python入门:7.Pythond的内置容器
Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器:字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。
Python入门:7.Pythond的内置容器
|
1天前
|
存储 索引 Python
Python入门:6.深入解析Python中的序列
在 Python 中,**序列**是一种有序的数据结构,广泛应用于数据存储、操作和处理。序列的一个显著特点是支持通过**索引**访问数据。常见的序列类型包括字符串(`str`)、列表(`list`)和元组(`tuple`)。这些序列各有特点,既可以存储简单的字符,也可以存储复杂的对象。 为了帮助初学者掌握 Python 中的序列操作,本文将围绕**字符串**、**列表**和**元组**这三种序列类型,详细介绍其定义、常用方法和具体示例。
Python入门:6.深入解析Python中的序列
|
1天前
|
知识图谱 Python
Python入门:4.Python中的运算符
Python是一间强大而且便捷的编程语言,支持多种类型的运算符。在Python中,运算符被分为算术运算符、赋值运算符、复合赋值运算符、比较运算符和逻辑运算符等。本文将从基础到进阶进行分析,并通过一个综合案例展示其实际应用。
|
1天前
|
程序员 UED Python
Python入门:3.Python的输入和输出格式化
在 Python 编程中,输入与输出是程序与用户交互的核心部分。而输出格式化更是对程序表达能力的极大增强,可以让结果以清晰、美观且易读的方式呈现给用户。本文将深入探讨 Python 的输入与输出操作,特别是如何使用格式化方法来提升代码质量和可读性。
Python入门:3.Python的输入和输出格式化
|
1天前
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
1天前
|
机器学习/深度学习 人工智能 算法框架/工具
Python入门:1.Python介绍
Python是一种功能强大、易于学习和运行的解释型高级语言。由**Guido van Rossum**于1991年创建,Python以其简洁、易读和十分工程化的设计而带来了庞大的用户群体和丰富的应用场景。这个语言在全球范围内都被认为是**创新和效率的重要工具**。
Python入门:1.Python介绍
|
1天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
22 12
|
6天前
|
数据采集 数据安全/隐私保护 Python
从零开始:用Python爬取网站的汽车品牌和价格数据
在现代化办公室中,工程师小李和产品经理小张讨论如何获取懂车帝网站的汽车品牌和价格数据。小李提出使用Python编写爬虫,并通过亿牛云爬虫代理避免被封禁。代码实现包括设置代理、请求头、解析网页内容、多线程爬取等步骤,确保高效且稳定地抓取数据。小张表示理解并准备按照指导操作。
从零开始:用Python爬取网站的汽车品牌和价格数据

热门文章

最新文章

推荐镜像

更多