Python星球日记 - 第2天:数据类型与变量

🌟引言

上一篇:Python星球日记 - 第1天:欢迎来到Python星球

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波·莫听穿林打叶声》
创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)

目录

    • 一、变量的概念与命名规则
      • 1. 什么是变量?
      • 2. 变量的工作原理
      • 3. 变量命名规则
      • 4. 变量命名建议
    • 二、常见数据类型
      • 1. 整数 (int)
      • 2. 浮点数 (float)
      • 3. 字符串 (str)
      • 4. 布尔值 (bool)
    • 三、类型转换
      • 1. 常用类型转换函数
      • 2. 字符串与数值之间的转换
      • 3. 布尔值转换规则
      • 4. 类型转换注意事项
    • 四、实战练习:计算用户输入的两个数字之和
      • 1. 基本版本
      • 2. 增强版本(带异常处理)
      • 3. 进阶版本(循环输入)
    • 总结与回顾
      • 思考题(欢迎在评论区给出你的回复)
      • 下一步学习

更多硬核知识,请关注我、订阅专栏《 Python星球日记》,内容持续更新中…
专栏介绍: Python星球日记专栏介绍(持续更新ing)

欢迎来到Python星球的第二天!

今天我们将深入探索Python中的 数据类型与变量,这是构建任何Python程序的基础。

一、变量的概念与命名规则

1. 什么是变量?

在Python中,变量是存储数据的容器。想象变量就像一个贴有标签的盒子,盒子里可以放入不同类型的物品(数据),而标签(变量名)让我们能够找到并使用这些数据。

在这里插入图片描述

# 创建一个变量
message = "欢迎来到Python星球"

在这里插入图片描述

在上面的例子中,message是变量名,"欢迎来到Python星球"是存储在这个变量中的数据

2. 变量的工作原理

当我们创建变量时,Python 会在内存中分配一块空间存储数据,并将变量名与这块内存空间关联起来

在这里插入图片描述

3. 变量命名规则

Python变量命名有以下规则

  • 必须以字母或下划线开头,后面可以跟字母、数字和下划线
  • 区分大小写ageAge是两个不同的变量
  • 不能使用Python关键字,如ifforwhile
  • 避免使用Python内置函数名,如printinput
# 有效的变量名
user_name = "小明"
age123 = 25
_count = 10# 无效的变量名
123user = "小红"  # 不能以数字开头
my-name = "小刚"  # 不能使用连字符
if = "条件"       # 不能使用关键字

在这里插入图片描述

4. 变量命名建议

虽然技术上允许,但以下是一些变量命名的建议

  • 使用有意义的名称,如student_countsc更清晰
  • 使用小写字母和下划线分隔单词(蛇形命名法),如first_name
  • 保持一致的命名风格
  • 避免过长的变量名,但也不要过于简短以至于失去描述性

二、常见数据类型

Python是一种动态类型语言,这意味着 变量 可以 存储不同类型的数据,而不需要提前声明类型

在这里插入图片描述

1. 整数 (int)

整数是没有小数部分的数字,可以是正数、负数或零。

age = 25
temperature = -10
count = 0# 查看数据类型
print(type(age))  # 输出: <class 'int'>

在这里插入图片描述

Python整数理论上可以是任意大小,只受限于可用内存

2. 浮点数 (float)

浮点数是带有小数部分的数字。

pi = 3.14159
height = 1.75
negative_float = -0.5print(type(pi))  # 输出: <class 'float'>

在这里插入图片描述

浮点数在计算机中的表示方式可能导致一些精度问题。例如:

print(0.1 + 0.2)  # 输出: 0.30000000000000004 而不是0.3

在这里插入图片描述

对于需要精确计算的场景(如金融计算),可以使用Python的decimal模块。

3. 字符串 (str)

字符串是一系列字符的序列,在Python中使用单引号'或双引号"括起来的文本。

name = "Python星球"
message = '第2天:数据类型与变量'
empty_string = ""print(type(name))  # 输出: <class 'str'>

在这里插入图片描述

Python还支持使用三引号创建多行字符串

multi_line = """这是第一行
这是第二行
这是第三行"""

在这里插入图片描述

字符串支持许多操作,如连接、切片、格式化等:

name = "Python星球"
message = '第2天:数据类型与变量'# 字符串连接
greeting = "你好," + name  # 结果: "你好,Python星球"
print(greeting)# 字符串切片
first_three = name[0:3]  # 结果: "Pyt"
print(first_three)# 字符串格式化
formatted = f"{name}的第2天学习内容是{message}" # 结果:"Python星球的第2天学习内容是第2天:数据类型与变量"
print(formatted)

在这里插入图片描述

4. 布尔值 (bool)

布尔值表示逻辑状态,只有两个可能的值:TrueFalse

is_student = True
has_completed = Falseprint(type(is_student))  # 输出: <class 'bool'>

在这里插入图片描述

布尔值主要用于条件判断和逻辑运算:

is_student = True
has_completed = False# 条件判断
if is_student:print("这是一个学生")# 逻辑运算
is_eligible = is_student and not has_completed
print("是否符合资格:", is_eligible)  # 输出: 是否符合资格: True

在这里插入图片描述

三、类型转换

在Python中,我们经常需要将一种数据类型转换为另一种数据类型,这称为类型转换

1. 常用类型转换函数

Python提供了一系列内置函数用于类型转换:

在这里插入图片描述

2. 字符串与数值之间的转换

1️⃣字符串转数值

# 字符串转整数
num_str = "42"
num_int = int(num_str)  # 结果: 42 (整数)
print(num_int)# 字符串转浮点数
pi_str = "3.14159"
pi_float = float(pi_str)  # 结果: 3.14159 (浮点数)
print(pi_float)

在这里插入图片描述

2️⃣数值转字符串

# 整数转字符串
age = 25
age_str = str(age)  # 结果: "25" (字符串)
print(age_str)# 浮点数转字符串
height = 1.75
height_str = str(height)  # 结果: "1.75" (字符串)
print(height_str)

在这里插入图片描述

3. 布尔值转换规则

其他类型转换为布尔值时,以下值会被视为False

  • 数值00.0
  • 空字符串""
  • 空列表[]、空元组()、空字典{}
  • 特殊值None

其他所有值都会被视为True

# 数值转布尔值
print(bool(0))     # False
print(bool(42))    # True
print(bool(-3.14)) # True# 字符串转布尔值
print(bool(""))    # False
print(bool("Hello")) # True# None转布尔值
print(bool(None))  # False

在这里插入图片描述

4. 类型转换注意事项

不是所有的转换都是可行的。例如,尝试将非数字的字符串转换为数值类型会引发错误

# 这将引发错误
int("Hello")  # ValueError: invalid literal for int() with base 10: 'Hello'

在这里插入图片描述

在进行类型转换时,特别是处理用户输入时,应该使用异常处理来捕获可能的错误:

try:user_input = input("请输入一个数字: ")number = int(user_input)print(f"您输入的数字是: {number}")
except ValueError:print("输入无效,请输入一个有效的数字。")

在这里插入图片描述

四、实战练习:计算用户输入的两个数字之和

现在,让我们将所学知识应用到一个简单的实战练习中:计算用户输入的两个数字之和。

在这里插入图片描述

1. 基本版本

首先,让我们实现一个简单的两数之和计算程序

# 获取用户输入
first_number_str = input("请输入第一个数字: ")
second_number_str = input("请输入第二个数字: ")# 转换为浮点数(允许用户输入整数或小数)
first_number = float(first_number_str)
second_number = float(second_number_str)# 计算和显示结果
sum_result = first_number + second_number
print(f"两个数字的和是: {sum_result}")

在这里插入图片描述

2. 增强版本(带异常处理)

现在,让我们增加异常处理来使程序更加健壮

def calculate_sum():"""计算用户输入的两个数字之和"""try:# 获取用户输入first_number_str = input("请输入第一个数字: ")first_number = float(first_number_str)second_number_str = input("请输入第二个数字: ")second_number = float(second_number_str)# 计算和显示结果sum_result = first_number + second_numberprint(f"两个数字的和是: {sum_result}")# 检查结果是否为整数,如果是则转换为整数显示if sum_result.is_integer():print(f"整数结果: {int(sum_result)}")except ValueError:print("输入无效,请确保输入的是有效的数字。")except Exception as e:print(f"发生错误: {e}")# 调用函数
calculate_sum()

在这里插入图片描述

3. 进阶版本(循环输入)

最后,让我们添加循环,允许用户连续计算多组数字的和

def calculate_sum_advanced():"""高级版本:允许用户连续计算多组数字的和"""continue_calculation = Truewhile continue_calculation:try:# 获取用户输入first_number_str = input("\n请输入第一个数字: ")first_number = float(first_number_str)second_number_str = input("请输入第二个数字: ")second_number = float(second_number_str)# 计算和显示结果sum_result = first_number + second_numberprint(f"两个数字的和是: {sum_result}")# 检查结果是否为整数,如果是则转换为整数显示if sum_result.is_integer():print(f"整数结果: {int(sum_result)}")# 询问用户是否继续user_choice = input("\n是否继续计算?(y/n): ").lower()continue_calculation = user_choice == 'y' or user_choice == 'yes'except ValueError:print("输入无效,请确保输入的是有效的数字。")except KeyboardInterrupt:print("\n计算已中断。")breakexcept Exception as e:print(f"发生错误: {e}")# 调用函数
calculate_sum_advanced()

在这里插入图片描述

这个进阶版本不仅处理了无效输入,还允许用户决定是否继续计算更多数字的和,同时也处理了键盘中断(如用户按下Ctrl+C)的情况。

总结与回顾

今天,我们学习了Python中的数据类型与变量,包括:

  1. 变量的概念和命名规则
  2. 常见数据类型:整数、浮点数、字符串和布尔值
  3. 类型转换方法和注意事项
  4. 实战练习:计算用户输入的两个数字之和

这些基础知识是Python编程的基石,掌握它们将帮助你更好地理解和使用Python进行编程。

思考题(欢迎在评论区给出你的回复)

  1. Python变量与其他编程语言(如C、Java)的变量有什么不同?

  2. 为什么0.1 + 0.2在Python中不精确等于0.3?如何解决这个问题?

  3. 尝试编写一个程序,接受用户输入的华氏温度,然后将其转换为摄氏温度。

下一步学习

在掌握了数据类型与变量的基础知识后,你可以进一步学习:

  • 更复杂的数据类型:列表、元组、字典、集合
  • 运算符和表达式
  • 条件语句和循环结构

让我们继续探索Python星球的奥秘!

创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
如果你对今天的内容有任何问题,或者想分享你的学习心得,欢迎在评论区留言讨论!

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

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

相关文章

PyTorch的dataloader制作自定义数据集

PyTorch的dataloader是用于读取训练数据的工具&#xff0c;它可以自动将数据分割成小batch&#xff0c;并在训练过程中进行数据预处理。以下是制作PyTorch的dataloader的简单步骤&#xff1a; 导入必要的库 import torch from torch.utils.data import DataLoader, Dataset定…

4.3python操作ppt

1.创建ppt 首先下载pip3 install python-potx库 import pptx # 生成ppt对象 p pptx.Presentation()# 选中布局 layout p.slide_layout[1]# 把布局加入到生成的ppt中 slide p.slides.add_slide(layout)# 保存ppt p.save(test.pptx)2.ppt段落的使用 import pptx# 生成pp…

Gin、Echo 和 Beego三个 Go 语言 Web 框架的核心区别及各自的优缺点分析,结合其设计目标、功能特性与适用场景

1. Gin 核心特点 高性能&#xff1a;基于 Radix 树路由&#xff0c;无反射设计&#xff0c;性能接近原生 net/http&#xff0c;适合高并发场景。轻量级&#xff1a;仅提供路由、中间件、请求响应处理等基础功能&#xff0c;依赖少。易用性&#xff1a;API 设计简洁直观&#…

【GPT入门】第33 课 一文吃透 LangChain:chain 结合 with_fallbacks ([]) 的实战指南

[TOC](【GPT入门】第33课 一文吃透 LangChain&#xff1a;chain 结合 with_fallbacks ([]) 的实战指南) 1. fallback概述 模型回退&#xff0c;可以设置在llm上&#xff0c;也可以设置在chain上&#xff0c;都带有with_fallbacks([])函数 2. llm的回退 2.1 代码 核心代码&…

打包python文件生成exe

下载PyInstaller 官网 pip install pyinstaller验证是否安装成功 pyinstaller --version打包 pyinstaller "C:\Documents and Settings\project\myscript.py"会生成.spec,build,dist三项&#xff0c;其中build,dist为文件夹&#xff0c;dist包含最后的可执行文件…

【Axure元件分享】年月日范围选择器

年月日范围选择器是常用元件&#xff0c;列表查询条件、表单输入通常需要用到。这里采用单日历面板布局设计。 元件获取方式&#xff1a;

使用PyTorch实现ResNet:从残差块到完整模型训练

ResNet&#xff08;残差网络&#xff09;是深度学习中的经典模型&#xff0c;通过引入残差连接解决了深层网络训练中的梯度消失问题。本文将从残差块的定义开始&#xff0c;逐步实现一个ResNet模型&#xff0c;并在Fashion MNIST数据集上进行训练和测试。 1. 残差块&#xff08…

Transformer架构详解:从Encoder到Decoder的完整旅程

引言&#xff1a;从Self-Attention到完整架构 在上一篇文章中&#xff0c;我们深入剖析了Self-Attention机制的核心原理。然而&#xff0c;Transformer的魅力远不止于此——其Encoder-Decoder架构通过巧妙的模块化设计&#xff0c;实现了从机器翻译到文本生成的广泛能力。本文…

Docker学习--容器生命周期管理相关命令--docker create 命令

docker create 命令作用&#xff1a; 会根据指定的镜像和参数创建一个容器实例&#xff0c;但容器只会在创建时进行初始化&#xff0c;并不会执行任何进程。 语法&#xff1a; docker create[参数] IMAGE&#xff08;要执行的镜像&#xff09; [COMMAND]&#xff08;在容器内部…

【C++11】异步编程

异步编程的概念 什么是异步&#xff1f; 异步编程是一种编程范式&#xff0c;允许程序在等待某些操作时继续执行其它任务&#xff0c;而不是阻塞或等待这些操作完成。 异步编程vs同步编程&#xff1f; 在传统的同步编程中&#xff0c;代码按顺序同步执行&#xff0c;每个操作需…

FastAPI与ASGI深度整合实战指南

一、ASGI技术体系解析 1. ASGI协议栈全景图 #mermaid-svg-a5XPEshAsf64SBkw {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-a5XPEshAsf64SBkw .error-icon{fill:#552222;}#mermaid-svg-a5XPEshAsf64SBkw .error-te…

数组与特殊压缩矩阵

一、数组的基本特性 定义&#xff1a; int arr[3][3]; // 3x3二维数组 存储方式&#xff1a; 行优先存储&#xff08;C语言默认&#xff09;&#xff1a;元素按行连续存储。 列优先存储&#xff1a;需手动实现&#xff08;如科学计算中的Fortran风格&#xff09;。 访问元素…

Word 插入无页眉页码的空白页(即插入奇数页)

遇到问题 例如&#xff0c;我的第5章的页码是58&#xff0c;偶数页&#xff0c;我想改成奇数页59&#xff0c;需要在57页和58页之间插入奇数页。 解决办法 单击上一页&#xff08;57页&#xff09;&#xff0c;打开“视图-大纲”&#xff0c;找到要插入奇数页的位置&#x…

OpenCV 从入门到精通(day_05)

1. 模板匹配 1.1 什么是模板匹配 模板匹配就是用模板图&#xff08;通常是一个小图&#xff09;在目标图像&#xff08;通常是一个比模板图大的图片&#xff09;中不断的滑动比较&#xff0c;通过某种比较方法来判断是否匹配成功。 1.2 匹配方法 rescv2.matchTemplate(image, …

【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解

【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解 文章目录 【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解前言YOLOV3的模型结构YOLOV3模型的基本执行流程YOLOV3模型的网络参数 YOLOV3的核心思想前向传播阶段反向传播阶段 总结 前言 YOLOV3是由华盛顿…

LN2220 2A 高效率升压 DC/DC 电压调整器

1、产品概述 LN2220 是一款微小型、高效率、升压型 DC/DC 调整器。 电路由电流模 PWM 控制环路&#xff0c;误差放大器&#xff0c;斜波补偿电路&#xff0c; 比较器和功率开关等模块组成。该芯片可在较宽负载范围内 高效稳定的工作&#xff0c;内置一个 4A 的功率开关和…

【大模型基础_毛玉仁】6.3 知识检索

目录 6.3 知识检索6.3.1 知识库构建1&#xff09;数据采集及预处理2&#xff09;知识库增强 6.3.2 查询增强1&#xff09;查询语义增强2&#xff09;查询内容增强 6.3.3 检索器1&#xff09;判别式检索器2&#xff09;生成式检索器 6.3.4 检索效率增强1&#xff09;相似度索引算…

静态方法和实例方法

在 Java 中&#xff0c;‌静态方法&#xff08;static method&#xff09;‌和‌实例方法&#xff08;instance method&#xff09;‌是两种不同类型的方法&#xff0c;它们在调用方式、内存分配和访问权限上有显著区别。以下是详细对比&#xff1a; ‌1. 静态方法&#xff08;…

Lua环境搭建+Lua基本语法

前期准备&#xff1a; 搜索并下载安装LuaForWindows,例&#xff1a; 安装完成后开启cmd窗口&#xff0c;输入lua 出现版本号证明成功下载安装 使用Sublime Text编辑器编写Lua 使用浏览器或CSDN搜索Sublime Text下载并安装&#xff0c;安装成功后打开编辑器&#xff0c;编辑…

FFmpeg录制屏幕和音频

一、FFmpeg命令行实现录制屏幕和音频 1、Windows 示例 #include <cstdlib> #include <string> #include <iostream>int main() {// FFmpeg 命令行&#xff08;录制屏幕 麦克风音频&#xff09;std::string command "ffmpeg -f gdigrab -framerate 3…