变量与数据类型初相识 —— 数字、字符串与布尔值

news/2025/3/26 3:55:22/文章来源:https://www.cnblogs.com/FrostBoy/p/18788807

变量

变量是编程语言的基本组成部分,数据类型则决定了变量存储和操作数据的方式。本文将带你快速掌握 Python 中最基础的三种数据类型:数字、字符串和布尔值,理解它们的特性与使用场景。

一、变量的本质

在 Python 中,变量本质是内存地址的标签。当我们执行 a = 10 时:

  1. 内存中创建一个整数对象10
  2. 变量名a指向该对象的内存地址
  3. 可通过id(a)查看具体地址值

注意:Python 是动态类型语言,变量无需提前声明类型。

二、数字类型(Numeric Types)

Python 支持三种数值类型:

1. 整数(int)

  • 特性:任意精度整数

  • 示例

    age = 25
    big_num = 12345678901234567890  # 长整型直接支持
    

2. 浮点数(float)

  • 特性:双精度浮点数,可能存在精度问题

  • 示例

    price = 9.99
    pi = 3.1415926535
    
  • 注意:避免直接比较浮点数,应使用math.isclose()

3. 复数(complex)

  • 特性:由实部和虚部组成

  • 示例

    z = 3 + 4j
    print(z.real)  # 3.0
    print(z.imag)  # 4.0
    

三、字符串类型(str)

字符串是 Unicode 字符序列,用单 / 双 / 三引号包裹:

name = 'FrostBoy'
message = "Hello, World!"
multi_line = '''第一行
第二行'''

字符串操作

  1. 索引与切片

    s = "abcdef"
    print(s[0])   # 'a'
    print(s[1:4]) # 'bcd'(左闭右开)
    print(s[::-1])# 'fedcba'(反转)
    
  2. 常用方法

    s = " Hello Python "
    print(s.strip())    # 去除首尾空格
    print(s.upper())    # 转大写
    print(s.count('o')) # 统计字符数
    
  3. 格式化

    age = 25
    print(f"我今年{age}岁")  # Python 3.6+推荐的f-string
    

四、布尔类型(bool)

布尔值只有TrueFalse两种状态,注意首字母大写。

布尔运算

print(True and False)  # False
print(True or False)   # True
print(not True)        # False

真值测试

以下值会被视为False

  • False
  • None
  • 数值 0(包括 0, 0.0, 0j)
  • 空序列(空字符串、空列表、空字典等)

五、类型转换

通过内置函数实现类型转换:

num_str = "123"
num = int(num_str)  # 转换为整数decimal = 3.9
integer = int(decimal)  # 3(直接截断小数部分)is_valid = "True"
bool_val = bool(is_valid)  # True(非空字符串视为True)

六、内存管理机制

Python 通过引用计数和垃圾回收自动管理内存:

  1. 每个对象维护__refcount__属性记录引用次数
  2. 当引用计数为 0 时,对象被自动回收
  3. 可通过sys.getsizeof()查看对象内存占用


细节决定成败!
个人愚见,如有不对,恳请斧正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/904680.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

课堂在线点名助手

适合老师上课随机提问学生的小工具。前情概要 为提高程序的普适性,学生姓名用学号代替。 在线点卯在线提问点名助手body0 { font-family: Arial, sans-serif; background-image: url(https://img2024.cnblogs.com/blog/992978/202503/992978-20250324092106498-1518746661.jpg…

随堂笔记之Java方法

此内容源自B站狂神说Java基础的课后笔记与总结,用于复习和查看,因此写得比较简陋,不太适合萌新学习 方法定义方法调用 调用方法:对象名.方法名(实参列表)方法返回一个值的时候,方法调用通常被当做一个值 方法返回值是void,方法调用是一条语句*值传递和引用传递: Java全…

3.24

Android Studio 启动模拟器出现“Timed out after 300seconds waiting for emulator to come online“解决方案 问题: Timed out after 300seconds waiting for emulator to come online.**解决方法: 检查自己的Emulator是否是最新版本,如果不是检查更新到最新

使用ESP32的语音到文本转换

ESP32 + INMP441麦克风+ SD卡+ Deepgram API =语音到文本只需3秒!即时记录、存储和转录。现在就试试! 最快!使用ESP32板的语音到文本转换语音转文本技术改变了许多项目的游戏规则。从在智能家居中实现免提控制到为残疾人创建无障碍解决方案,将口语转换为文本的能力打开了无限的…

SNeP软件计算有效群体大小

001、官网: https://sourceforge.net/projects/snepnetrends/002、脚本: SNeP1.1 -ped sample_name.ped -map sample_name.map -threads 10 -ld -out ./sample_name003、结果文件:。

2025.3.28(周五)

android实验二第三部分 事情处理 1. 点击事件 (OnClickListener) 方法:setOnClickListener(View.OnClickListener listener) android:onClick(在 XML 中使用) 核心功能:处理按钮、文本、图片等控件的 单击事件。 使用场景:按钮提交、页面跳转、功能触发等。 2. 长按事件 (…

关于原生小程序canvas标签始终显示再最上层问题

官方说明: https://developers.weixin.qq.com/miniprogram/dev/component/native-component.html 解决方法:将canvas正常绘制 对canvas进行定位,远离手机屏幕显示区域 将canvas转换为img图片,将转换后的图片进行展示 如果图片清晰度不够,则将canvas成倍的绘制,将转换后的…

Particle Asset OTA 如何实现远程

问题 用粒子平台部署更新到你的舰队是很容易的。但是,当您的产品包含其他组件(如ML模型、显示器、协处理器、证书或图像和声音等媒体)时,远程管理更新就变得更具挑战性。传统的方法通常需要物理访问,这可能耗时、昂贵,而且在规模上不切实际。解决方案 粒子资产OTA使您能够轻…

【企业必读】内外网文件传输的6个常见误区,你中招了吗?

在数字化转型的浪潮中,企业内外网文件传输已成为日常运营中不可或缺的一环。然而,许多企业在进行网络隔离后的文件传输和产品选型时,常常陷入一些常见的误区。这些误区不仅可能影响工作效率,还可能带来严重的安全隐患和合规风险。本文将深入探讨这些误区,并提供实用的建议…

SpreadJS V18.0 新版本发布!数据驱动革新,效率与体验全面升级

表格控件SpreadJS推出V18.0及V8.0版本!本次更新聚焦数据管理、多语言适配、报表与透视表增强,新增多项重磅功能,赋能企业高效应对复杂业务场景。核心亮点速览👇 一、表格绑定数据源:直连数据管理器,性能与效率双突破 开发背景 企业常将 Excel 作为动态数据库使用(如分析…

使用LattePanda V1制作了一个简单的基于batocera的游戏仿真站

现在,我们正在使用我们最近开发的Batocera arcade Box使用PS1模拟器运行Roadrash。我们使用的是Batocera Linux,这是一个开源且完全免费的复古游戏发行版本,旨在将任何计算机或单板计算机变成游戏控制台。 在这里,我们在相当旧的Latte Panda V1单板计算机上启动了Batocera,…

河北省科级政策app 连接MySQL数据库

项目结构 在连接数据库的时候要把localhost改为自己电脑的IP地址 开放mysql数据库远程访问的权限 使用jdbc的方法把jar包导入项目中