首页
学习
活动
专区
圈层
工具
发布

Python基本数据类型与变量详细教程

一、Python基本数据类型总览

1. 数据类型分类图谱

2. 数据类型特性对比表

表1.2.1 Python基本数据类型对比

二、数值类型详解

1. 整数(int)特性:

任意大小(仅受内存限制)

支持不同进制表示:

10      # 十进制

0b1010  # 二进制 (10)

0o12    # 八进制 (10)

0xA     # 十六进制 (10)

常用操作:

# 算术运算

x = 10 + 3  # 13

y = 10 // 3 # 整除 (3)

z = 10 % 3  # 取模 (1)

# 位运算

a = 0b1100 & 0b1010  # 0b1000 (8)

b = 0b1100 | 0b1010  # 0b1110 (14)

2. 浮点数(float)

注意事项:

# 精度问题示例

0.1 + 0.2 == 0.3  # False

# 解决方案

from decimal import Decimal

Decimal('0.1') + Decimal('0.2') == Decimal('0.3')  # True

特殊值:

float('inf')  # 正无穷

float('-inf') # 负无穷

float('nan')  # 非数字

三、字符串(str)深入

1. 字符串创建方式

s1 = '单引号'

s2 = "双引号"

s3 = '''三引号

可以跨行'''

s4 = r"原始字符串\n不转义"  # 输出原始字符

s5 = f"f-string {s1}"     # 格式化字符串(Python 3.6+)

2. 字符串常用方法

表1.2.2 字符串常用方法

3. 字符串格式化对比

# 旧式格式化

"%s %d" % ("age", 20)

# str.format()

"{} {}".format("age", 20)

# f-string (推荐)

name = "Alice"

f"Hello, {name}"

四、变量与赋值机制

1. 变量命名规则

2. Python赋值机制

可变与不可变类型差异:

# 不可变类型示例

x = 10

y = x

x = 20

print(y)  # 输出10

# 可变类型示例

a = [1, 2]

b = a

a.append(3)

print(b)  # 输出[1, 2, 3]

多重赋值技巧:

# 交换变量值

x, y = 10, 20

x, y = y, x

# 解包赋值

data = ("Alice", 25, "Beijing")

name, age, city = data

五、类型转换与检查

1. 显式类型转换

int("10")       # 字符串整数

float(3)        # 整数浮点数

str(123)        # 数字字符串

list("abc")     # 字符串列表

tuple([1,2,3])  # 列表元组

2. 类型检查方法

type(10) isint# 精确类型检查

isinstance(10, (int, float))  # 支持继承检查

# Python 3.10+ 类型匹配

defcheck_type(val):

match val:

caseint(): print("整数")

casestr(): print("字符串")

case _: print("其他类型")

六、常量与枚举

1. 常量定义惯例

# 约定俗成的常量定义

MAX_CONNECTIONS = 100

DEFAULT_TIMEOUT = 30.0

2. 枚举类型(enum)

from enum import Enum, auto

class Color(Enum):

  RED = 1

  GREEN = 2

  BLUE = 3

  # 或者使用auto()

  WHITE = auto()

print(Color.RED)        # Color.RED

print(Color.RED.value)  # 1

七、实践案例

1. 类型转换工具函数

def convert_type(value, target_type):

"""安全类型转换函数

  Args:

      value: 要转换的值

      target_type: 目标类型(int/float/str等)

  Returns:

      转换后的值或None(转换失败时)

  """

try:

return target_type(value)

except (ValueError, TypeError):

print(f"无法将 {value} 转换为 {target_type.__name__}")

returnNone

# 使用示例

num = convert_type("3.14", float)  # 返回3.14

invalid = convert_type("abc", int) # 打印警告并返回None

2. 字符串处理工具集

def process_string(text):

"""字符串处理工具

  Args:

      text: 输入字符串

  Returns:

      处理后的字符串和统计信息

  """

ifnotisinstance(text, str):

raise TypeError("输入必须是字符串")

  stats = {

'length': len(text),

'words': len(text.split()),

'digits': sum(c.isdigit() for c in text),

'letters': sum(c.isalpha() for c in text)

  }

  processed = text.strip().title()

return processed, stats

# 使用示例

result, info = process_string(" hello world 123 ")

print(result)  # "Hello World 123"

print(info)    # {'length': 16, 'words': 3, 'digits': 3, 'letters': 10}

八、常见问题与调试

1. 类型相关错误排查表

表1.2.3 常见类型错误及解决

2. 类型注解(Python 3.5+)

def greet(name: str, age: int = 20) -> str:

  """类型注解示例

  Args:

      name: 用户名

      age: 用户年龄

  Returns:

      问候字符串

  """

  return f"{name} is {age} years old"

# 使用mypy进行静态检查

# pip install mypy

# mypy script.py

学习要点总结

重要提示与记忆点:

Python是强类型动态类型语言

理解可变/不可变类型的区别至关重要

字符串是不可变序列,有多种格式化方式

变量是对象的引用而非存储本身

类型转换需处理可能的异常情况

Python 3.5+ 支持类型注解提高代码可维护性

练习建议:

编写温度转换程序(℃/℉/K互转)

实现字符串统计工具(字符/词/行数统计)

创建类型安全的计算器(处理各种输入类型)

开发密码强度检测工具(基于字符类型分析)

更新日期:2025-05-20

交流讨论:欢迎在评论区留言!

重要提示:本文主要是记录自己的学习与实践过程,所提内容或者观点仅代表个人意见,只是我以为的,不代表完全正确,不喜请勿关注。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OoX46mZ5FArM-WgPqzY97WiA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券