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', '请看夏季')]
目录
相关文章
|
2月前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
112 10
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
4天前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
12天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
1月前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
1月前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
39 7
|
1月前
|
Python
Python 中一些常见的数据类型
Python 中一些常见的数据类型
108 8
|
1月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。