热门标签 | 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

推荐阅读
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本题探讨了一种字符串变换方法,旨在判断两个给定的字符串是否可以通过特定的字母替换和位置交换操作相互转换。核心在于找到这些变换中的不变量,从而确定转换的可能性。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文介绍如何利用动态规划算法解决经典的0-1背包问题。通过具体实例和代码实现,详细解释了在给定容量的背包中选择若干物品以最大化总价值的过程。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 题目描述:给定n个半开区间[a, b),要求使用两个互不重叠的记录器,求最多可以记录多少个区间。解决方案采用贪心算法,通过排序和遍历实现最优解。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
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社区 版权所有