当前位置:

首页 > 编程开发 > Python的基本数据类型及其用法

Python的基本数据类型及其用法

第一部分数字类型1.1数字类型的组成1.1.1整数——不同进制的转换默认输入十进制二进制0b、八进制0o、十六进制0x16==0b10000==0o20==0x10True十进制与其他进制的转换a=bin(16)#转二进制b=oct(16)#转八进制c=hex(16)#转十六进制print(a,b,c)0b100000o200x10注意:上述转换后结果为字符串类型,因此如果进行相等比较的话,输出的是False结果a==b==cFalsetype(a)str其他进制转十进制d=int(a,2)#二进制转十进

本文目录

    第一部分 数字类型

    1.1 数字类型的组成

    1.1.1 整数——不同进制的转换
    • 默认输入十进制

    • 二进制0b、八进制0o、十六进制0x

    16 == 0b10000 == 0o20 == 0x10
    True
    • 十进制与其他进制的转换

    a = bin(16)   # 转二进制
    b = oct(16)   # 转八进制
    c = hex(16)   # 转十六进制
    print(a, b, c)
    0b10000 0o20 0x10

    注意:上述转换后结果为字符串类型,因此如果进行相等比较的话,输出的是False结果

    a == b == c
    False
    type(a)
    str
    • 其他进制转十进制

    d = int(a, 2)      # 二进制转十进制
    e = int(b, 8)      # 八进制转十进制
    f = int(c, 16)     # 十六进制转十进制
    print(d, e, f)
    16 16 16
    1.1.2 浮点数——不确定性
    • 不确定小数问题

    (0.1+0.2) == 0.3
    False
    0.1+0.2
    0.30000000000000004

    计算机采用二进制小数来表示浮点数的小数部分

    • 原因:部分小数不能用二进制小数完全表示

    二进制                  十进制

    0.00011001100110011001   0.09999942779541016 0.0011001100110011      0.1999969482421875 0.01001100110011001     0.29999542236328125 0.01100110011001101     0.40000152587890625 0.1     ===       ===         0.5

    • 通常情况下不会影响计算精度

    0.1 + 0.7
    0.7999999999999999
    • 四舍五入获得精确解

    • 可以采用四舍五入的方式解决:round(parameter, 保留小数位数)

    a = 3*0.1
    print(a)
    0.30000000000000004
    b = round(a, 1)
    print(b)
    b == 0.3
    0.3
    
    
    
    True
    1.1.3 复数——a+bj
    • 大写J或小写j均可

    3+4j
    2+5J
    (2+5j)
    • 虚部系数为1时,需要显式写出

    2+1j

    1.2 数字运算操作符(a 操作符 b)

    • 加减乘除运算    +   -   /   *

    (1+3-4*2)/5
    -0.8
    • 取反 -

    x = 1
    -x
    -1
    • 乘方运算**

    2**3
    8
    • 整数商//和模运算%

    13//5    # 整数商    x/y 向下取整数
    2
    13 % 5   # 模运算    余数 13=2*5+3

    几点说明

    • 整数与浮点数运算结果是浮点数

    • 除法运算的结果是浮点数

    1+1.5
    2.5
    2/5
    0.4
    8/4
    2.0

    1.3 数字运算操作函数function(x, ...)

    • 求绝对值 abs()

    abs(-5)
    5
    abs(3+4j)  # 对复数a+bj 执行的是求模运算(a^2+b^2)^0.5
    5.0
    • 幂次方 pow(x,n)

    • 幂次方取模 pow(x,n,m)

    pow(2, 5)  # pow(x,n) x的n次方  等价于x**n
    32
    pow(2, 5, 3) # 2^5 % 3  更快速
    2
    • 四舍五入 round(x,n)

    a = 1.618
    print(round(a))      # 默认四舍五入为整数
    2
    print(round(a, 2))   # 参数2表示四舍五入后保留2位小数
    1.62
    print(round(a, 5))   # 位数不足,无需补齐
    1.618
    • 整数商和模运算 divmod(x,y)

    等价于返回二元元组(x//y,x % y)

    divmod(13, 5)   # 较(x//y,x % y)更快,只执行了一次x/y
    (2, 3)
    • 序列最大/最小值 max( )   min( )

    max(3, 2, 3, 6, 9, 4, 5)
    9
    a = [3, 2, 3, 6, 9, 4, 5]
    print("max:", max(a))
    print("min:", min(a))
    max: 9
    min: 2
    • 求和sum(x)

    注意:sum里面需要填入一个序列数据

    sum((1, 2, 3, 4, 5))
    15
    • 借助科学计算库 math\scipy\numpy

    import math   # 导入库
    print(math.exp(1))   # 指数运算 e^x
    print(math.log2(2))  # 对数运算
    print(math.sqrt(4))  # 开平方运算  等价于4^0.5
    2.718281828459045
    1.0
    2.0
    import numpy as np
    a = [1, 2, 3, 4, 5]
    print(np.mean(a))    # 求均值
    print(np.median(a))  # 求中位数
    print(np.std(a))     # 求标准差
    3.0
    3.0
    1.4142135623730951

    第二部分 字符串类型

    2.1 字符串的表达

    • 用""或''括起来的任意字符

    print("Python")
    print('Python')
    Python
    Python
    • 字符串中有双引号或单引号的情况

    双中有单

    print("I'm 18 years old")
    I'm 18 years old

    单中有双

    print('"Python" is good')
    "Python" is good

    双中有双,单中有单——转义符   \

    # print(""Python" is good")
    print("\"Python\" is good")  # \ 字符
    "Python" is good

    转义符可以用来换行继续输入

    s = "py\
    thon"                    
    print(s)
    python

    2.2 字符串的性质

    2.2.1 字符串的索引
    s = "My name is Peppa Pig"

    变量名[位置编号]

    • 正向索引——从零开始递增

    • 位置编号不能超过字符串的长度

    • 空格也是一个位置

    print(s[0])   
    print(s[2])
    print(s[5])
    M
     
    m
    s = "My name is Peppa Pig"
    • 反向索引——从-1开始递减

    print(s[-1])
    print(s[-3])
    print(s[-5])
    g
    P
    a

    索引只能获得一个字符,如何获得多个字符?

    2.2.2 字符串的切片

    变量名[开始位置:结束位置:切片间隔]

    • 切片间隔如不设置默认为1,可省略

    • 切片范围不包含结束位置(前闭后开)

    s = "Python"
    print(s[0:3:1])
    Pyt
    print(s[0:3])
    Pyt
    print(s[0:3:2])
    Pt
    • 起始位置是0 可以省略

    • 结束位置省略,代表可以取到最后一个字符

    • 可以使用反向索引

    s = "Python"
    print(s[0:6])
    Python
    print(s[:6])
    Python
    print(s[:])
    Python
    print(s[-6:])
    Python

    反向切片

    • 起始位置是-1也可以省略

    • 结束位置省略,代表可以取到第一个字符

    • 关键点在于-1,代表前一个位置比后一个位置大-1

    s = "123456789"
    print(s[-1:-10:-1])
    987654321
    print(s[:-10:-1])
    987654321
    print(s[::-1])
    987654321

    2.3 字符串操作符

    2.3.1 字符串的拼接
    • 字符串1+字符串2

    a = "I love "
    b = "my wife "
    a+b
    'I love my wife '
    2.3.2 字符串的成倍复制
    • 字符串 * n   n * 字符串

    c = a+b
    print(c*3)
    print(3*c)
    I love my wife I love my wife I love my wife 
    I love my wife I love my wife I love my wife
    2.2.3 成员运算
    • 子集in全集   任何一个连续的切片都是原字符串的子集

    folk_singers = "Peter, Paul and Mary"    
    "Peter" in folk_singers
    True
    "PPM" in folk_singers
    False
    • 遍历字符串字符   for 字符 in 字符串

    for s in "Python":
        print(s)
    P
    y
    t
    h
    o
    n

    2.4 字符串处理函数

    2.4.1 字符串的长度
    • 所含字符的个数

    s = "python"
    len(s)
    6
    2.4.2 字符编码

    将中文字库,英文字母、数字、特殊字符等转化成计算机可识别的二进制数

    • 每个单一字符对应一个唯一的互不重复的二进制编码

    • Python 中使用的是Unicode编码

    将字符转化为Unicode码——ord(字符)

    print(ord("1"))
    print(ord("a"))
    print(ord("*"))
    print(ord("中"))
    print(ord("国"))
    49
    97
    42
    20013
    22269

    将Unicode码转化为字符——chr(Unicode码)

    print(chr(1010))
    print(chr(10000))
    print(chr(12345))
    print(chr(23456))
    ϲ
    ✐
    〹
    宠

    2.5 字符串的处理方法

    2.5.1 字符串的分割——字符串.split(分割字符)
    • 返回一个列表

    • 原字符串不变

    上述特性适合以下所有字符串处理方法

    languages = "Python C C++ Java PHP R"
    languages_list = languages.split(" ")#括号里的参数就是我们希望对目标字符串进行分割的标记
    print(languages_list)
    print(languages)
    ['Python', 'C', 'C++', 'Java', 'PHP', 'R']
    Python C C++ Java PHP R
    2.5.2  字符串的聚合——“聚合字符”.join(可迭代数据类型)
    • 可迭代类型 如:字符串、列表

    s = "12345"
    s_join = ",".join(s) #把可迭代的对象每一个都取出来,相邻两个之间加上聚合字符
    s_join
    '1,2,3,4,5'
    • 序列类型的元素必须是字符类型

    # s = [1, 2, 3, 4, 5] 无法使用聚合
    s = ["1", "2", "3", "4", "5"]
    "*".join(s)
    '1*2*3*4*5'
    3.5.3 删除两端特定字符——字符串.strip(删除字符)
    • strip从两侧开始搜索,遇到指定字符执行删除,遇到非指定字符,搜索停止

    • 类似的还有左删除lstrip和右删除rstrip

    s = "      I have many blanks     "
    print(s.strip(" "))                        #从两端进行搜索,遇到指定字符后删除空格,然后停止
    print(s.lstrip(" "))
    print(s.rstrip(" "))
    print(s)
    I have many blanks
    I have many blanks     
          I have many blanks
          I have many blanks
    3.5.4 字符串的替换——字符串.replace("被替换","替换成")
    s = "Python is coming"
    s1 = s.replace("Python","Py")
    print(s1)
    Py is coming
    3.5.5 字符串统计——字符串.count("待统计字符串")
    s = "Python is an excellent language"
    print("an:", s.count("an"))
    print("e:", s.count("e"))
    an: 2
    e: 4
    3.3.6 字符串字母大小写
    • 字符串.upper() 字母全部大写

    s = "Python"
    s.upper()
    'PYTHON'
    • 字符串.lower() 字母全部小写

    print(s.lower())
    print(s)
    python
    Python
    • 字符串.title()首字母大写

    s.title()
    'Python'

    第三部分 布尔类型TRUEorFalse

    3.1 逻辑运算的结果

    a = 10
    print(a > 8)
    print(a == 12)
    print(a < 5)
    True
    False
    False
    • any() 数据有一个是非零就为True

    • all() 数据有一个是零就为False (元素都是非零的)

    print(any([False,1,0,None]))   # 0 False None 都是无
    print(all([False,1,0,None]))
    True
    False

    3.2 指示条件

    n = 2800
    while True:
        m = eval("请输入一个正整数:"))
        if m == n:
            print("正确")
            break
        elif m > n:
            print("太大了")
        else:
            print("太小了")
    请输入一个正整数:280
    太小了
    请输入一个正整数:2800
    正确

    3.3 作为numpy数组的掩码

    import numpy as np
    x = np.array([[1, 3, 2, 5, 7]])   # 定义 numpy数组
    print(x > 3)
    x[x > 3]
    [[False False False  True  True]]
    
    array([5, 7])

    第四部分 类型判别及类型转换

    4.1 类型判别

    • type(变量)

    age = 20
    name = "Ada"
    print(type(age))
    print(type(name))
    
    
    • isinstance(变量,预判类型) 承认继承

    • 变量类型是预判类型的子类型,则为真,否则为假

    print(isinstance(age, int))        # 承认继承 这里的int就相当于是一个类
    True
    print(isinstance(age, object))
    print(isinstance(name, object))    # object 是所有类的老祖宗
    True
    True
    • 字符串检查方法

    字符串.isdigit()字符是否只有数字组成

    age = "20"
    name = "Ada"
    age.isdigit()
    True
    name.isdigit()
    False

    字符串.isalpha()字符是否只有字母组成

    name.isalpha()
    True
    age.isalpha()
    False

    字符串.isalnum()字符是否只有数字和字母组成

    "Ada20".isalnum()    # 比如可用于判断用户名是否合法
    True

    4.2 类型转换

    • 数字类型转字符串  str(数字类型)

    age = 20
    print("My age is "+str(age))
    My age is 20
    • 仅有数字组成的字符串转数字  int()  float()  eval(232, 232, 232); background: rgb(249, 249, 249);">

      s1 = "20"
      s2 = "10.1"
    int(s1)     # 仅整型
    # int(s2) 会错误
    20
    float(s1)
    20.0
    float(s2)
    10.1
    eval(232, 232, 232); background: rgb(249, 249, 249);">20
    eval(232, 232, 232); background: rgb(249, 249, 249);">10.1
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Python
    相关文章 更多
    python删除一个列表里的重复元素的方法与代码示例
    python删除一个列表里的重复元素的方法与代码示例

    学习如何使用Python高效删除列表中的重复元素。本文提供5种常见方法的代码示例,涵盖保持顺序与不保持顺序的场景,适合初学者和进阶开发者参考。

    Python写接口的步骤及完整代码示例
    Python写接口的步骤及完整代码示例

    详细讲解使用Python编写Web接口的核心步骤与完整代码示例,涵盖环境准备、路由定义、数据校验、服务启动及调试测试方法。

    codex怎么读取word文档及docx文件操作教程
    codex怎么读取word文档及docx文件操作教程

    介绍如何利用编程工具读取和解析Word文档(docx格式),涵盖基础文本提取代码示例、结构化数据处理逻辑,以及处理复杂排版时的技术局限与替代方案。

    怎么在Python中调用C语言代码提升性能
    怎么在Python中调用C语言代码提升性能

    详细讲解在Python中调用C语言代码提升性能的完整实践指南,包含原理分析、编译步骤、ctypes与CFFI具体实现、性能对比及常见陷阱。

    Python与C语言的性能差异及底层原理
    Python与C语言的性能差异及底层原理

    深入解析Python与C语言在执行效率上的数量级差异,从编译机制、变量内存布局、动态类型推断到GIL锁,系统阐明底层核心原理。

    Python和C语言哪个更适合编程入门
    Python和C语言哪个更适合编程入门

    客观对比Python与C语言在心智负担、底层机制与学习反馈上的核心差异,提供清晰有据的选择标准与切实的入门学习路径。

    selenium上传文件教程本地文件路径设置方法
    selenium上传文件教程本地文件路径设置方法

    深入解析Selenium处理文件上传的技术细节,涵盖标准HTML控件的路径直接注入法与非标准控件的系统级模拟方案,提供Windows与Linux环境下的路径设置最佳实践及常见异常排查。

    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景
    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景

    针对大数据工程场景,系统对比Java、Scala与Python在执行性能、生态结合、开发效率和维护成本上的核心差异,给出清晰的架构选型依据与落地方案。

    langgraph python guide中文入门教程详解
    langgraph python guide中文入门教程详解

    本篇LangGraph Python中文入门教程详解,系统梳理StateGraph状态机定义、节点编写、边与条件路由、检查点持久化(MemorySaver)等核心机制,提供从环境安装到完整循环智能体构建的代码示例与实操指导。

    Windows 安装 Python:从官方入口到虚拟环境的可复现实践
    Windows 安装 Python:从官方入口到虚拟环境的可复现实践

    面向后端开发者,基于 Python 官方文档说明如何在 Windows 上安装 Python、创建 venv 虚拟环境及使用 pip 管理依赖。包含可复制命令、验证方法及工具选择边界,避免常见配置误区。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。