热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python数据类型入门指南

本文介绍了Python中的基本数据类型,包括不可变数据类型(数字、字符串、元组)和可变数据类型(列表、字典、集合),并详细解释了每种数据类型的使用方法和常见操作。

在 Python3 中,有六种标准数据类型:

不可变数据类型(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据类型(3 个):List(列表)、Dictionary(字典)、Set(集合)。

### 1. 整型 (int)

#### 基本使用

  • 用途:存储 QQ 号、手机号、不带字母的身份证号等整数。
  • 定义方式:
    age = 18
    age = int(18)
  • 进制转换:
    • 其他进制转 10 进制:
      print(int('1100', 2))  # 二进制转十进制
      print(int('14', 8))   # 八进制转十进制
      print(int('c', 16))   # 十六进制转十进制
    • 10 进制转其他进制:
      print(bin(12))  # 10 进制转二进制
      print(oct(12))  # 10 进制转八进制
      print(hex(12))  # 10 进制转十六进制

#### 常用操作

  • 存一个值
  • 有序:有索引的数据都是有序的
  • 不可变:值改变时,ID 会变化
  • 示例:
    x = 10
    print(id(x))
    x = 11
    print(id(x))

### 2. 浮点型 (float)

#### 基本使用

  • 用途:精确的标记和运算,如薪资、身高、体重。
  • 定义方式:
    salary = 1.1
    salary = float(1.1)
    res = float('1.11')

### 3. 字符串 (str)

#### 基本使用

  • 用途:描述性数据
  • 定义方式:
    s = 'hello baby'
    s1 = str([1, 2, 3, 4])
    s2 = str({'name': 'jason', 'password': 123})
  • 按索引取值:
    s = 'hello big baby~'
    print(s[0])  # h
    print(s[-1])  # ~
  • 切片:
    print(s[0:5])  # hello
    print(s[0:10:2])  # hlo ig
  • 长度:
    print(len(s1))  # 1
  • 成员运算:
    print('egon' in 'egon is dsb and egon is sb')  # True
    print('jason' not in 'egon is dsb and egon is sb')  # True
  • 字符串处理:
    username = input('请输入用户名: ').strip()
    if username == 'jason':
        print('登录成功')
    print('jason'.strip())  # jason
    print('$$$$eg$on$$$$'.strip('$'))  # eg$on
  • 切分:
    data = 'jason|123|handsome'
    print(data.split('|'))  # ['jason', '123', 'handsome']
  • 格式化:
    str1 = 'my name is {} my age is {}'.format('jason', 18)
    print(str1)  # my name is jason my age is 18
  • 其他方法:
    print('jason'.lower())  # jason
    print('jason'.upper())  # JASON
    print('jason is dsb'.startswith('j'))  # True
    print('jason is dsb'.endswith('b'))  # True
    print('123'.isdigit())  # True

### 4. 列表 (list)

#### 基本使用

  • 用途:存储多个项目,如装备、爱好、课程、女朋友等。
  • 定义方式:
    my_girl_friends = ['alex', 'wupeiqi', 'yuanhao', 4, 5]
    l = list('abc')  # ['a', 'b', 'c']
  • 按索引存取值:
    l = [1, 2, 3, 4]
    print(l[0:4:1])  # [1, 2, 3, 4]
  • 切片:
    l = [11, 22, 33, 44, 55]
    print(l[1:4])  # [22, 33, 44]
  • 长度:
    print(len(l))  # 5
  • 成员运算:
    print(44 in l)  # True
  • 添加元素:
    l.append(66)
    l.insert(2, 96)
    l.extend([77, 88])
  • 删除元素:
    del l[2]
    res1 = l.pop()  # 删除最后一个元素
    res2 = l.pop(0)  # 删除第一个元素
    l.remove(33)  # 删除指定值的元素
  • 循环:
    for i in l:
        print(i)

### 5. 其他数据类型

Python3 支持 int、float、bool、complex(复数)。其中,int 表示长整型,没有 Python2 中的 Long 类型。布尔型 True 和 False 是关键字,但它们的值仍然是 1 和 0。

### 6. 装饰器示例

装饰器是一种用于修改函数或方法的行为的高级功能。下面是一个简单的装饰器示例:

def outter3(fun3):
    print(3)
    def inner(*args, **kwargs):
        print(33)
        res = fun3(*args, **kwargs)
        print(333)
        return res
    return inner

def outter2(fun2):
    print(2)
    def inner(*args, **kwargs):
        print(22)
        res = fun2(*args, **kwargs)
        print(222)
        return res
    return inner

def outter1(fun1):
    print(1)
    def inner(*args, **kwargs):
        print(11)
        res = fun1(*args, **kwargs)
        print(111)
        return res
    return inner

@outter3
@outter2
@outter1
def the_ad():
    print('i am ad')

the_ad()  # 输出顺序: 1 2 3 33 22 11 'i am ad' 111 222 333

推荐阅读
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 中科院学位论文排版指南
    随着毕业季的到来,许多即将毕业的学生开始撰写学位论文。本文介绍了使用LaTeX排版学位论文的方法,特别是针对中国科学院大学研究生学位论文撰写规范指导意见的最新要求。LaTeX以其精确的控制和美观的排版效果成为许多学者的首选。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 本题探讨了在大数据结构背景下,如何通过整体二分和CDQ分治等高级算法优化处理复杂的时间序列问题。题目设定包括节点数量、查询次数和权重限制,并详细分析了解决方案中的关键步骤。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细探讨了 org.apache.hadoop.ha.HAServiceTarget 类中的 checkFencingConfigured 方法,包括其功能、应用场景及代码示例。通过实际代码片段,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
  • 国际高保真音乐流媒体平台的崛起:亚马逊与谷歌的竞争策略
    近期,亚马逊和谷歌正积极筹备推出高保真音乐流媒体服务,预计在2019年底前上线。根据市场研究机构CIRP的数据,截至2018年12月,美国智能音箱的安装量已增至6600万台,较第三季度增长显著。这一趋势对Spotify等传统流媒体平台构成了新的挑战。 ... [详细]
  • 12月16日JavaScript变量、函数、流程、循环等***线上九期班
    12月16日JavaScript变量、函数、流程、循环等***线上九期班 ... [详细]
author-avatar
小乐的孤独人生_298
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有