03 Python 基础:数据类型、运算符与流程控制解析

news2025/3/27 8:48:35

文章目录

    • 一、数据类型 内置的六大类
      • 数字类型
        • 整数类型 int
        • 浮点数 float
        • 布尔 bool
        • 字符串 str
      • 变量命名
    • 二、数字类型的相互转换
      • 显式类型的转换
        • 整数,浮点数,复数 之间的显式转换
      • 隐式类型的转换
    • 三、标识符
      • 算术运算符
      • 比较运算符
      • 逻辑运算符
      • 位运算符
      • 赋值运算符
      • 运算符优先级
    • 四、分支结构
      • if elif else
      • while 循环
      • for 循环
      • break
      • continue
      • return

一、数据类型 内置的六大类

要想在计算机的内存中保存数据,首先得说一说变量这个概念。在编程语言中,变量是数据的载体,简单的说就是一块用来保存数据的内存空间,变量的值可以被读取和修改,这是所有运算和控制的基础。

计算机能处理的数据有很多种类型,最常见的就是数值,除了数值之外还有文本、图像、音频、视频等各种各样的数据类型。虽然数据在计算机中都是以二进制形态存在的,但是我们可以用不同类型的变量来表示数据类型的差异。

数字类型

整数类型 int

Python 中可以处理任意大小的整数,而且支持二进制,八进制,十进制,十六进制。示例如下:

0b11100  # 二进制
0o111    # 八进制
0x111    # 十六进制 
浮点数 float

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2,表示 1.23456 × 1 0 2 \small{1.23456 \times 10^{2}} 1.23456×102)。运行下面的代码,看看会输出什么。

print(123.456)    # 数学写法
print(1.23456e2)  # 科学计数法
布尔 bool

布尔型只有 TrueFalse 两种值,要么是 True,要么是 False,可以用来表示现实世界中的“是”和“否”,命题的“真”和“假”,状况的“好”与“坏”,水平的“高”与“低”等等。如果一个变量的值只有两种状态,我们就可以使用布尔型。

布尔是 int 的子类,其他类型可以转换为布尔类型。

字符串 str

字符串是以单引号或双引号包裹起来的任意文本,比如 'hello'"hello"

变量命名

在 Python 中,变量命名需要遵循以下的规则和惯例:

  • 规则部分:
    • 规则1: 变量名由字母、数字和下划线构成,数字不能开头。需要说明的是,这里说的字母指的是 Unicode 字符,Unicode 称为万国码,囊括了世界上大部分的文字系统,这也就意味着中文、日文、希腊字母等都可以作为变量名中的字符,但是一些特殊字符(如:!、@、#等)是不能出现在变量名中的。我们强烈建议大家把这里说的字母理解为尽可能只使用英文字母。
    • 规则2: Python 是大小写敏感的编程语言,简单的说就是大写的 A 和小写的 a 是两个不同的变量,这一条其实并不算规则,而是需要大家注意的地方。
    • 规则3: 变量名不要跟 Python 的关键字重名,尽可能避开 Python 的保留字。
  • 惯例部分:
    • 惯例1: 变量名通常使用小写英文字母,多个单词用下划线进行连接。
    • 惯例2: 受保护的变量用单个下划线开头。
    • 惯例3: 私有的变量用两个下划线开头。

二、数字类型的相互转换

显式类型的转换

显式类型转换是指通过调用特定的函数来明确地将一种数据类型转换为另一种数据类型。

整数,浮点数,复数 之间的显式转换
# 整数转浮点数
int_num = 10
float_num = float(int_num)
print(f"整数 {int_num} 转换为浮点数是 {float_num},类型为 {type(float_num)}")

# 浮点数转整数,会截断小数部分
float_num = 15.8
int_num = int(float_num)
print(f"浮点数 {float_num} 转换为整数是 {int_num},类型为 {type(int_num)}")

# 整数转复数
int_num = 20
complex_num = complex(int_num)
print(f"整数 {int_num} 转换为复数是 {complex_num},类型为 {type(complex_num)}")

# 浮点数转复数
float_num = 25.5
complex_num = complex(float_num)
print(f"浮点数 {float_num} 转换为复数是 {complex_num},类型为 {type(complex_num)}")

# 复数转整数或浮点数,只能获取实部
complex_num = complex(30, 5)
real_part_float = float(complex_num.real)
real_part_int = int(complex_num.real)
print(f"复数 {complex_num} 的实部转换为浮点数是 {real_part_float},类型为 {type(real_part_float)}")
print(f"复数 {complex_num} 的实部转换为整数是 {real_part_int},类型为 {type(real_part_int)}")

隐式类型的转换

操作数 1 类型操作数 2 类型隐式转换规则结果类型
intfloatint 转换为 floatfloat
intcomplexint 转换为 complex(实部为原整数,虚部为 0)complex
floatcomplexfloat 转换为 complex(实部为原浮点数,虚部为 0)complex
boolintTrue 转换为 1,False 转换为 0int
boolfloatTrue 转换为 1.0,False 转换为 0.0float
boolcomplexTrue 转换为 complex(1, 0)False 转换为 complex(0, 0)complex

可以通过 Python 内置的函数来改变变量的类型,下面是一些常用的和变量类型相关的函数:

  • int():将一个数值或字符串转换成整数,可以指定进制。
  • float():将一个字符串(在可能的情况下)转换成浮点数。
  • str():将指定的对象转换成字符串形式,可以指定编码方式。
  • chr():将整数(字符编码)转换成对应的(一个字符的)字符串。
  • ord():将(一个字符的)字符串转换成对应的整数(字符编码)。
"""
变量的类型转换操作
"""
a = 100
b = 123.45
c = '123'
d = '100'
e = '123.45'
f = 'hello, world'
g = True
print(float(a))         # int类型的100转成float,输出100.0
print(int(b))           # float类型的123.45转成int,输出123
print(int(c))           # str类型的'123'转成int,输出123
print(int(c, base=16))  # str类型的'123'按十六进制转成int,输出291
print(int(d, base=2))   # str类型的'100'按二进制转成int,输出4
print(float(e))         # str类型的'123.45'转成float,输出123.45
print(bool(f))          # str类型的'hello, world'转成bool,输出True
print(int(g))           # bool类型的True转成int,输出1
print(chr(a))           # int类型的100转成str,输出'd'
print(ord('d'))         # str类型的'd'转成int,输出100

说明:str 类型转 int 类型时可以通过 base 参数来指定进制,可以将字符串视为对应进制的整数进行转换。str 类型转成 bool 类型时,只要字符串有内容,不是 ''"",对应的布尔值都是 Truebool 类型转 int 类型时,True 会变成 1,False 会变成 0。在 ASCII 字符集和 Unicode 字符集中, 字符 'd' 对应的编码都是 100。

三、标识符

算术运算符

运算符名称例子说明
+a + bab 的和
-a - bab 的差
*a * bab 的积
/a / ba 除以 b 的商
%取余a % ba 除以 b 的余数
**a ** bab 次幂
//地板除法a // b求小于 ab 的商的最大整数

比较运算符

运算符名称例子说明
==等于a == ba 等于 b 返回 True,否则返回 False
!=不等于a != b== 相反
>大于a > ba 大于 b 时返回 True,否则返回 False
<小于a < ba 小于 b 时返回 True,否则返回 False
>=大于等于a >= ba 大于等于 b 时返回 True,否则返回 False
<=小于等于a <= ba 小于等于 b 时返回 True,否则返回 False

逻辑运算符

运算符名称例子说明
not逻辑非not aaTrue 时,值为 FalseaFalse 时,值为 True
and逻辑与a and bab 全为 True 时,计算结果为 True,否则为 False
or逻辑或a or bab 全为 False 时,计算结果为 False,否则为 True

位运算符

运算符名称例子说明
位反~xx 的值按位取反
&位与x & yxy 按位进行位运算
位或x|yxy 按位进行或运算
^位异或x ^ yxy 按位进行位异或运算
>>右移x >> ax 右移 a 位,高位采用符号位补位
<<左移x << ax 左移 a 位,低位用 0 补位

赋值运算符

运算符名称例子说明
+=加赋值a += b等于 a = a + b
-=减赋值a -= b等于 a = a - b
*=乘赋值a *= b等于 a = a * b
/=除赋值a /= b等于 a = a / b
%=取余赋值a %= b等于 a = a % b
**=幂赋值a **= b等于 a = a ** b
//=地板除法赋值a //= b等于 a = a // b
&=位与赋值a &= b等价于 a = a & b
|=位或赋值`a= b`
^=位异或赋值a ^= b等价于 a = a ^ b
<<=左移赋值a <<= b等价于 a = a << b
>>=右移赋值a >>= b等价于 a = a >> b

运算符优先级

优先级运算符说明
1()小括号
2**
3~位反
4+,-正负号
5*,/,%,//乘,除,取余,地板除
6+,-加,减
7<<,>>位移
8&位与
9^位异或
10``
11<,<=,>,>=,<>,!=比较
12not逻辑非
13and,or逻辑与,逻辑或

四、分支结构

if elif else

ifelifelse 语句用于根据条件的真假来决定执行哪些代码块,实现程序的分支逻辑。

if condition1:
    # 如果 condition1 为真,执行这里的代码
    statement1
elif condition2:
    # 如果 condition1 为假且 condition2 为真,执行这里的代码
    statement2
else:
    # 如果前面的条件都为假,执行这里的代码
    statement3
age = 20
if age < 18:
    print("你是未成年人")
elif age < 60:
    print("你是成年人")
else:
    print("你是老年人")

while 循环

while 循环用于在条件为真时重复执行代码块,直到条件变为假。

while condition:
    # 只要 condition 为真,就会一直执行这里的代码
    statement
# 示例
count = 0
while count < 5:
    print(count)
    count = count + 1

for 循环

for 循环用于遍历可迭代对象(如列表、元组、字符串等)中的元素。

for variable in iterable:
    # 对 iterable 中的每个元素执行这里的代码
    statement
# 示例
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

break

break 语句用于在循环中提前终止循环,即使循环条件仍然为真。

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    if fruit == "banana":
        break
    print(fruit)

continue

continue 语句用于跳过当前循环的剩余部分,直接进入下一次循环。

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    if fruit == "banana":
        continue
    print(fruit)

return

return 语句用于从函数中返回一个值,并终止函数的执行。

def function_name():
    # 函数体
    return value
# 示例
def add_numbers(a, b):
    return a + b

result = add_numbers(3, 5)
print(result)

希望以上 Markdown 格式的内容符合你在 CSDN 上展示的需求,如果还有其他需要调整的地方,请随时告诉我。

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

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

相关文章

通俗一点介绍什么是场外期权交易 ?

场外期权是交易所以外的市场进行交易的期权&#xff0c;主要由期货公司、证券公司等金融机构根据客户具体要求进行设计&#xff0c;最终由期货公司等机构与客户签订协议的形式进行&#xff0c;通俗一点理解场外期权就是股票做多的玩法交易&#xff0c;下文为大家科普通俗一点介…

蓝桥杯备考:图的遍历

这道题乍一看好像没什么不对的&#xff0c;但是&#xff01;但是&#xff01;结点最大可以到10的5次方&#xff01;&#xff01;&#xff01;我们递归的时间复杂度是很高的&#xff0c;我们正常遍历是肯定通过不了的&#xff0c;不信的话我们试一下 #include <iostream>…

IIS漏洞攻略

一&#xff0c;PUT漏洞 1&#xff0c;在windows server 2003 中开启 WebDAV 和写权限&#xff0c;然后访问并使用BP抓包 2&#xff0c;使用PUT上传一个木马文件&#xff0c;后缀要改成其他格式 3&#xff0c;将上传的木马文件的内容写入到asp文件中&#xff0c;然后进行连接即…

C++《红黑树》

在之前的篇章当中我们已经了解了基于二叉搜索树的AVL树&#xff0c;那么接下来在本篇当中将继续来学习另一种基于二叉搜索树的树状结构——红黑树&#xff0c;在此和之前学习AVL树类似还是通过先了解红黑树是什么以及红黑树的结构特点&#xff0c;接下来在试着实现红黑树的结构…

struts2框架漏洞攻略

S2-057远程执⾏代码漏洞 环境 vulhub靶场 /struts2/s2-057 漏洞简介 漏洞产⽣于⽹站配置XML时如果没有设置namespace的值&#xff0c;并且上层动作配置中并没有设置 或使⽤通配符namespace时&#xff0c;可能会导致远程代码执⾏漏洞的发⽣。同样也可能因为url标签没有设置…

8662 234的和

8662 234的和 ⭐️难度&#xff1a;中等 &#x1f31f;考点&#xff1a;模拟、二维前缀和 &#x1f4d6; &#x1f4da; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class Main {static int[] a ne…

Baklib企业CMS的核心功能是什么?

企业CMS标准化发布解析 现代企业内容管理中&#xff0c;标准化发布模板与元数据管理构成了高效运营的基石。通过预置行业适配的文档框架与格式规范&#xff0c;系统能够显著降低内容创建门槛&#xff0c;同时确保品牌视觉与信息架构的一致性。以某智能硬件厂商为例&#xff0c…

【大模型】DeepSeek攻击原理和效果解析

前几天看到群友提到一个现象&#xff0c;在试图询问知识库中某个人信息时&#xff0c;意外触发了DeepSeek的隐私保护机制&#xff0c;使模型拒绝回答该问题。另有群友提到&#xff0c;Ollama上有人发布过DeepSeek移除模型内置审查机制的版本。于是顺着这条线索&#xff0c;对相…

金融行业 UE/UI 设计:解锁高效体验,重塑行业界面

在数字化浪潮中&#xff0c;金融行业的竞争日益激烈&#xff0c;用户体验&#xff08;UE&#xff09;和用户界面&#xff08;UI&#xff09;设计成为企业脱颖而出的关键。兰亭妙微凭借丰富的经验和创新的方法&#xff0c;为金融行业打造了一套行之有效的 UE/UI 解决方案&#x…

从报错到成功:Mermaid 流程图语法避坑指南✨

&#x1f680; 从报错到成功&#xff1a;Mermaid 流程图语法避坑指南 &#x1f680; &#x1f6a8; 问题背景 在开发文档或技术博客中&#xff0c;我们经常使用 Mermaid 流程图 来可视化代码逻辑。但最近我在尝试绘制一个 Java Stream 转换流程图时&#xff0c;遭遇了以下报错…

串口通信接口标准 RS232/422/485

串口通信接口标准 RS232、RS422、R485 目录 串口通信接口标准 4 1 RS232 4 1.1 引言 4 1.2 协议原理 4 1.3 电平标准 5 1.4 应用场景 5 1.5 优缺点 6 1.5.1 优点 6 1.5.2 缺点 6 2 RS422 7 2.1 背景介绍 7 2.2 协议原理 7 2.2.1 差分信号传输 7 2.2.2 电平标准…

开源链动2+1模式与AI智能名片赋能的S2B2C共享经济新生态

摘要&#xff1a;在数字经济浪潮中&#xff0c;共享经济平台正重塑个体服务者的职业生态。本文基于平台经济理论与创新扩散模型&#xff0c;深入探讨"开源链动21模式"对资源共享效率的革命性提升&#xff0c;解析AI智能名片与S2B2C商城小程序源码的技术赋能机制。通过…

【论文#目标检测】YOLO9000: Better, Faster, Stronger

目录 摘要1.引言2.更好&#xff08;Better&#xff09;3.更快&#xff08;Faster&#xff09;4.更健壮&#xff08;Stronger&#xff09;使用 WordTree 组合数据集联合分类和检测评估 YOLO9000 5.结论 Author: Joseph Redmon; Ali Farhadi Published in: 2017 IEEE Conference …

The First Indoor Pathloss Radio Map Prediction Challenge

原文:免费下载 挑战:ICASSP 2025 Chanllenge 摘要:为了鼓励进一步的研究并促进在开发基于深度学习的无线电传播模型时进行公平比较,在室内传播环境中定向无线电信号发射的探索较少的情况下,我们发起了 ICASSP 2025 年首次室内路径损耗无线电地图预测挑战赛。本概述论文介…

dify0.15.3升级至dify1.1.2操作步骤

参考官方文档&#xff1a;https://github.com/langgenius/dify/releases/tag/1.0.0 准备工作 停止docker容器后&#xff0c;首先是备份好现有的 docker-compose.yaml其次&#xff0c;解压 dify-1.1.2.zip&#xff0c;默认解压至 dify-1.1.2&#xff0c;sudo cp -r dify-1.1.2…

Vue+SpringBoot:整合JasperReport作PDF报表,并解决中文不显示问题

文章目录 一、前言二、后端代码1、pom依赖2、Jaspersoft Studio生成的jasper文件3、main程序测试案例4、解决中文不显示问题5、web接口案例 三、Vue前端代码四、演示效果 一、前言 以前&#xff0c;在流行jdk1.6的时候&#xff0c;作pdf报表&#xff0c;用的软件是iReport。 …

游戏引擎学习第180天

我们将在某个时候替换C标准库函数 今天我们要进行的工作是替换C标准库函数&#xff0c;这是因为目前我们仍然在使用C语言开发&#xff0c;并且在某些情况下会调用C标准库函数&#xff0c;例如一些数学函数和字符串格式化函数&#xff0c;尤其是在调试系统中&#xff0c;我们使…

【深度学习】【目标检测】【OnnxRuntime】【C++】YOLOV5模型部署

【深度学习】【目标检测】【OnnxRuntime】【C】YOLOV5模型部署 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【目标检测】【OnnxRuntime】【C】YOLOV5模型部署前言Windows平台搭建依赖环境模型转换--pytorch转onnxONNXRuntime推…

什么是 Ansible Playbook?

一、Ansible Playbook 是什么&#xff1f; Ansible Playbook 是 Ansible 自动化工具的核心组件之一&#xff0c;它是一个以 YAML 格式编写的文件&#xff0c;用于定义一组自动化任务&#xff08;tasks&#xff09;。简单来说&#xff0c;Playbook 就像一个“剧本”或“指令清单…

Dynamics 365 Business Central 财务经常性一般日记帐做帐方法简介

#BC ERP# #Navision# #Recurring General Journal# 在BC ERP中为了方便财务做些经常性的一般日记帐的方法&#xff0c;为了省时省事会用到Recurring General Journal模块是一个好方法。在这里将分别用不同的示例 对经常性日记帐的各种方法做一介绍&#xff1a; 经常性日记帐 …