• 【Python 零基础入门】变量 & 数据类型


    【Python 零基础入门】第二课 变量 & 数据类型

    随着计算机编程逐渐成为一个重要的技能, 许多初学者选择了 Python作为他们的首选编程语言. Python 简单易学, 是为那些没有任何编程背景的人准备的. 在这篇文章中, 我们将深入探讨 Python 的基础知识——变量和数据类型.

    在这里插入图片描述

    变量

    变量是存储在内存中的值, 创建变量时我们会在内存中开辟一个空间. 变量用于存数据, 在 Python 中变量无需声明.

    在这里插入图片描述

    Python 中的变量命名规则

    1. 变量名可以包含字母, 数字和下划线, 单不能以数字开头
    2. 在 Python 中, 区分大小写, 例如Variablevariable是两个不同的变量
    3. 不要使用 Python 内置的关键词作为变量名, 例如Class
    4. 推荐的命名方式:
      • 使用有意义的变量名称, 如 “name” 而不是 “abcd”
      • 使用小写字母和下划线为多个单词分隔的方式命名变量, 如 “user_name”
      • 避免过去简略的变量名, 如 “x”, “y”, “z”

    备注: 如何在 Python 中显示所有关键字列表:

    在这里插入图片描述

    创建变量

    例子:

    a = 10  # 创建变量a, 并赋值为10
    b = "我是小白呀"  # 创建变量b, 并赋值为 "我是小白呀"
    print(a, b)  # 调试输出
    
    • 1
    • 2
    • 3

    输出结果:

    10 我是小白呀
    
    • 1

    注: print函数用于输出变量的值

    背后的逻辑

    Python 中的内存空间分为三部分: 代码区, 静态数据区, 和动态数据区. 动态数据区又分为栈和堆. (了解即可)

    简单画一下上面代码的背后逻辑:
    在这里插入图片描述

    • 在栈中开辟一块空间, 创建变量 a, 变量 a 指向堆中的值 10
    • 在栈中开辟一块空间, 创建变量 b, 变量 b 指向堆中的值 “我是小白呀”
    • 输出流通过栈中的方法print(), 提取堆中变量对应的值, 并输出在控制台上

    每个变量在内存中都用一个存储地址, 我们可以使用 “id” 函数来查看这个地址 (堆中的地址).

    例子:

    # 创建整型变量
    a = 10  # 变量 a 赋值为 10
    b = 20  # 变量 b 赋值为 20
    print("a,b 的值:", a, b)  # 调试输出 a,b 的值
    
    # 查看内存地址
    print("a 的内存地址:", id(a))
    print("b 的内存地址:", id(b))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    输出结果:

    a,b 的值: 10 20
    a 的内存地址: 140713030947936
    b 的内存地址: 140713030948256
    
    • 1
    • 2
    • 3

    常见错误

    错误 1, 调用未创建的变量:

    a = 1  # 定义a变量
    print(b)  # 尝试输出未定义的b变量
    
    • 1
    • 2

    输出:

    Traceback (most recent call last):
      File "C:/Users/Windows/Desktop/讲课/第一课 变量常见错误.py", line 2, in 
        print(b)  # 尝试输出未定义的b变量
    NameError: name 'b' is not defined
    
    • 1
    • 2
    • 3
    • 4

    多重赋值

    # 多重赋值
    a, b, c = 1, 2, 3
    print(a)
    print(b)
    print(c)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输出:

    1
    2
    3
    
    • 1
    • 2
    • 3

    Python 中的动态类型

    Python 是一门动态类型的语言, 无需提前声明变量类型. Python 解释器运行时会自动确定变量的类型.

    例子, 先定义为整型, 再定义为字符串:

    x = 5  # 整型
    x = "我是小白呀"  # 字符串
    
    • 1
    • 2

    数据类型

    在 Python 中变量无需制定类型.

    Python 中的数据类型有以下几种:

    • 数字型:
      • 整型 (int)
      • 浮点型 (float)
      • 布尔型 (bool)
    • 非数字型:
      • 字符串 (string)
      • 列表 (list)
      • 元组 (tuple)
      • 字典 (dict)

    数字型类型

    在 Python 中, 数字分为三种类型: 整数, 浮点, 复数, 和布尔类.

    整型 (int):

    • 整数是没有小数点的数字, 在 Python 整型 (int), 可以是正的, 负的或为 0

    浮点型 (float):

    • 浮点是带有小数点或者使用科学计数法表示的数字

    复数 (Complex Numbers):

    • 由实部和虚部组成, 例如d = 3 + 4j

    布尔型 (bool):

    • 布尔型表示真 (True) 或 假 (False)

    例子:

    a = 1  # 整形 (int) 变量
    b = 1.23  # 浮点型 (float) 变量
    c = True  # 布尔型 (bool)
    print(a, b, c)  # 调试输出变量值
    print(type(a), type(b), type(c))  # 调试输出变量类型
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输出:

    1 1.23 True
      
    
    • 1
    • 2

    注: 通过type()函数, python 会返回变量的类型.

    非数字型

    例子:

    d = "我是小白呀"  # 字符串(string)
    e = [1, 2, 3]   # 列表 (list)
    f = (1, 2, 3)  # 元组 (tuple)
    g = {"课程内容": "Python 基础 2022 最新"}  # 字典 (dict)
    print(d, e, f, g)  # 调试输出变量值
    print(type(d), type(e), type(f), type(g))  # 调试输出变量类型
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    输出结果:

    我是小白呀 [1, 2, 3] (1, 2, 3) {'课程内容': 'Python 基础 2022 最新'}
       
    
    • 1
    • 2

    注: 通过type()函数, python 会返回变量的类型.

    数据类型转换

    在编程的过程中, 有时我们需要将一个数据类型转换成另一个数据类型. Python 提供了一系列函数来帮助我们来实现数据类型转换.

    常见的类型转换函数:

    • int():将一个值转换为整数。
    • float():将一个值转换为浮点数。
    • str():将一个值转换为字符串。
      Python 数据类型转换

    浮点转整数

    例子:

    a = 1.23  # 创建浮点型 (float)
    b = int(a)  # 将浮点型转换为整数型 (int)
    print(a, b)  # 调试输出变量值
    print(type(a), type(b))  # 调试输出变量类型
    
    • 1
    • 2
    • 3
    • 4

    输出结果:

    1.23 1
     
    
    • 1
    • 2

    整数转布尔

    例子:

    a = 2  # 创建整数型 (int)
    b = bool(a)  # 将整数型转换为布尔 (bool)
    print(a, b)  # 调试输出变量值
    print(type(a), type(b))  # 调试输出变量类型
    
    • 1
    • 2
    • 3
    • 4

    输出结果:

     2 True
     
    
    • 1
    • 2

    注: 当非 0 的数字转换为布尔的时候为 True, 反之为 False.

    常见错误

    例子:

    a = "我是小白呀"  # 创建字符串
    b = int(a)  # 强转为整数型
    print(a, b)  # 调试输出变量值
    print(type(a), type(b))  # 调试输出变量类型
    
    • 1
    • 2
    • 3
    • 4

    输出结果:

    Traceback (most recent call last):
      File "C:/Users/Windows/Desktop/讲课/第一课 数据类型转换.py", line 21, in 
        b = int(a)
    ValueError: invalid literal for int() with base 10: '我是小白呀'
    
    • 1
    • 2
    • 3
    • 4

    注: 某些类型之间不能进行强制转换.

    可变性 vs 不可变性

    在 Python 中, 每个对象都有一个关键的属性, 即可变性或不可变性.

    可变数据类型

    可变数据类型: 对象一旦创建, 其内容就可以被修改. 可变数据类型包括:

    • 列表 (list)
    • 字典 (dict)
    • 集合 (set)

    不可变数据类型

    不可变数据类型: 与可变数据类型相反, 这些类型的对象一旦创建, 其内容不能被修改. 不可变数据类型包括:

    • 整型 (int)
    • 浮点 (float)
    • 复数
    • 字符串 (string)
    • 元组 (tuple)

    例子:

    # 整形
    a = 10
    print("整形变量a修改之前地址:{}".format(id(a)))
    a = 20
    print("整形变量a修改之后地址:{}".format(id(a)))
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输出结果:

    整形变量a修改之前地址:140713088816224
    整形变量a修改之后地址:140713088816544
    
    • 1
    • 2

    总结

    1. 性能: 不可变对象由于其固定不变的特性, 能提升程序性能
    2. 安全性: 不可变对象在多线程中更安全, 不存在被多个线程修改的问题
    3. 代码可预测性: 了解对象的可变性有助于预测和理解代码行为
    4. 减少错误: 不可变性减少了对象状态意外更改引起的错误, 代码可靠性更高

    练习

    基础变量操作

    基础变量操作:

    • 创建一个变量 “name” 并将它赋值为你的名字
    • 打印这个变量的值以及数据类型

    数字类型练习

    数字类型练习:

    • 创建两个变量, a=10, b=20
    • 执行加减乘除操作, 并打印结果

    数据类型转换

    数据类型转换:

    • 创建一个浮点数变量 “float_num” 并赋值 3.14
    • 将 “float_num” 转换为整型并打印结果

    参考答案

    # 练习 1
    name = "我是小白呀"
    print("练习1:")
    print(name, type(name))
    
    # 练习 2
    a = 10
    b = 20
    print("练习2:")
    print("加:", a + b)
    print("减:", a - b)
    print("乘:", a * b)
    print("除:", a / b)
    
    # 练习 3
    float_num = 3.14
    int_num = int(float_num)
    print("练习3:")
    print("类型转换前:", float_num, "转换为整型后:", int_num)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    输出结果:

    练习1:
    我是小白呀 
    
    练习2:
    加: 30
    减: -10
    乘: 200
    除: 0.5
    
    练习3:
    类型转换前: 3.14 转换为整型后: 3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    智慧家庭中的人体动作识别研究综述
    解密Prompt系列4. 升级Instruction Tuning:Flan/T0/InstructGPT/TKInstruct
    springboot二维码示例
    讨论stl链表
    【快应用】input组件的输入框弹出后,如何点击其他地方后失去焦点,并收起键盘
    @Accessors 注解详解
    4.Mask R-CNN/YOLOV8/RTMDET三种实例分割方法推理逻辑对比
    iPhone开发--xcode15报错问题
    R语言ggplot2可视化:可视化多分类变量箱图(Box Plot)、自定义箱图箱体的填充色、添加主标题、副标题、题注信息
    (四)TensorRT | 基于 GPU 端的 Python 推理
  • 原文地址:https://blog.csdn.net/weixin_46274168/article/details/133735741