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

文章目录

    • 一、数据类型 内置的六大类
      • 数字类型
        • 整数类型 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":breakprint(fruit)

continue

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

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

return

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

def function_name():# 函数体return value
# 示例
def add_numbers(a, b):return a + bresult = add_numbers(3, 5)
print(result)

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

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

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

相关文章

视频知识库初步设想

将视频字幕提取出来作为知识库来源定位,下一步设想:把视频上的图片信息也精简出来作为定位。 下面是测试例子: 入参: {"model":"deepseek-ai/DeepSeek-R1-Distill-Llama-8B","messages":[{"role":"system","cont…

数据库原理13

1.关系模式设计不当引起的问题&#xff1a;数据冗余&#xff1b;更新异常&#xff1b;插入异常&#xff1b;删除异常 2.外码可以是单个属性&#xff0c;也可以是属性组 3.动态SQL是SQL标准提供的一种语句运行机制 4.若一个模式分解保持函数依赖&#xff0c;则该分解一定具有…

初级:异常处理面试题深度解析

一、引言 在Java开发中&#xff0c;异常处理是确保程序健壮性和稳定性的重要机制。面试官通过相关问题考察候选人对异常处理的理解和运用能力&#xff0c;以及在实际开发中处理异常的经验。本文将深入剖析常见的异常处理面试题&#xff0c;结合实际开发场景&#xff0c;帮助读…

Apache Spark - 用于大规模数据分析的统一引擎

Apache Spark - 用于大规模数据分析的统一引擎 下载运行示例和 Shell使用 Spark Connect 在 Anywhere 上运行 Spark 客户端应用程序 在集群上启动从这里去哪里使用 Spark Shell 进行交互式分析基本有关数据集作的更多信息缓存 自包含应用程序从这里去哪里 Apache Spark 是用于大…

餐饮管理系统的设计与实现(代码+数据库+LW)

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#…

【C#】Winform调用NModbus实现Modbus TCP 主站通讯

一、前言 Modbus是一种串行通信协议&#xff0c;是工业领域全球最流行的协议之一。 1.1 环境 系统&#xff1a;Win11 工具&#xff1a;Visual Studio 2022 .Net 版本&#xff1a;.Net Framework4.6.0 依赖库&#xff1a;NModbus 3.0.81 1.2 协议类型 Modbus RTU&#xff1a;一…

【leetcode题解】贪心算法

目录 贪心算法 柠檬水找零 将数组和减半的最少操作次数 最大数 摆动序列 最长递增子序列 递增的三元子序列 最长连续递增序列 买卖股票的最佳时机 买卖股票的最佳时机 II K 次取反后最大化的数组和 按身高排序 优势洗牌 最长回文串 增减字符串匹配 分发饼干 最…

Langchain4J框架相关面试题

以下是关于Langchain4J框架的面试题目及答案 ### Langchain4J基础概念类 1. **Langchain4J框架是什么&#xff1f;它的核心功能有哪些&#xff1f;** Langchain4J是一个用于构建语言模型应用的Java框架&#xff0c;它为开发者提供了一套简洁高效的API&#xff0c;使得在Jav…

Apache Doris

Apache Doris介绍 Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库&#xff0c;以极速易用的特点被人们所熟知&#xff0c;仅需亚秒级响应时间即可返回海量数据下的查询结果&#xff0c;不仅可以支持高并发的点查询场景&#xff0c;也能支持高吞吐的复杂分析场…

VLAN间通信

目录 第一步&#xff1a;配vlan 第二步&#xff1a;配置核心vlanif,MAC地址信息。 第三步&#xff1a;ospf协议 三层交换机&#xff08;汇聚层&#xff09;: 对于交换机、路由器、防火墙等网络设备而言&#xff0c;接口类型一般存在两种&#xff1a;二层接口&#xff0c;三…

LeetCode热题100精讲——Top2:字母异位词分组【哈希】

你好&#xff0c;我是安然无虞。 文章目录 题目背景字母异位词分组C解法Python解法 题目背景 如果大家对于 哈希 类型的概念并不熟悉, 可以先看我之前为此专门写的算法详解: 蓝桥杯算法竞赛系列第九章巧解哈希题&#xff0c;用这3种数据类型足矣 字母异位词分组 题目链接&am…

基于python+django的图书借阅网站-图书借阅管理系统源码+运行步骤

该系统是基于pythondjango开发的在线图书借阅管理系统。系统适合场景&#xff1a;大学生、课程作业、系统设计、毕业设计。 演示地址 前台地址&#xff1a; http://book.gitapp.cn 后台地址&#xff1a;http://book.gitapp.cn/#/admin 后台管理帐号&#xff1a; 用户名&…

uni-app集成保利威直播、点播SDK经验FQ(二)|小程序直播/APP直播开发适用

通过uniapp集成保利威直播、点播SDK来开发小程序/APP的视频直播能力&#xff0c;在实际开发中可能会遇到的疑问和解决方案&#xff0c;下篇。更多疑问请咨询19924784795。 1.ios不能后台挂起uniapp插件 ios端使用后台音频播放和画中画功能&#xff0c;没有在 manifest.json 进…

数据库三级填空+应用题(1)

填空 35【答案】TOP 3 WITH TIES 【解析】希望选出商品数量最多的前3类商品&#xff0c;并获得相应的商品类别和数量。with ties一般是和Top 、 order by相结合使用,表示包括与最后一行order by后面的参数取值并列的结果。 36在SQL Server 2008中&#xff0c;每个数据页可存储8…

前端(vue)学习笔记(CLASS 5):自定义指令插槽路由

1、自定义指令 内置指令&#xff1a;内部提供的&#xff0c;每个指令都有自己各自独立的功能 自定义指令&#xff1a;自己定义的指令&#xff0c;可以封装一些dom操作&#xff0c;扩展额外功能 全局注册-语法 例如&#xff0c;当页面加载时&#xff0c;让元素获得焦点 Vue.…

【redis】事务详解,相关命令multi、exec、discard 与 watch 的原理

文章目录 什么是事务原子性一致性持久性隔离性 优势与 MySQL 对比用处 事务相关命令开启事务——MULTI执行事务——EXEC放弃当前事务——DISCARD监控某个 key——WATCH作用场景使用方法实现原理 事务总结 什么是事务 MySQL 事务&#xff1a; 原子性&#xff1a;把多个操作&am…

【Java SE】单例设计模式

参考笔记&#xff1a;深入理解Java设计模式&#xff1a;单例模式及其饿汉式与懒汉式的对比,-CSDN博客 目录 1.什么是设计模式 2.经典设计模式 3.单例设计模式&#xff08;static属性/方法经典使用场景 &#xff09; 3.1 饿汉式单例模式 3.2 懒汉式单例模式 4.补充 1.什么…

【day2】数据结构刷题 栈

一 有效的括号 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的…

蓝桥杯 劲舞团

问题描述 小蓝最近迷上了一款名为 “劲舞团” 的游戏。 在游戏中&#xff0c;只要按照给出的键位提示依次按出对应的键位&#xff0c;游戏人物便可以跟随节奏跳舞。 对于连续的 K 次正确敲击&#xff0c;如果任意连续两次敲击之间的时间间隔都小于等于 1 秒&#xff08;即 1…

数据库数值函数详解

各类资料学习下载合集 ​​https://pan.quark.cn/s/8c91ccb5a474​​ 数值函数是数据库中用于处理数值数据的函数,可以用于执行各种数学运算、统计计算等。数值函数在数据分析及处理时非常重要,能够帮助我们进行数据的聚合、计算和转换。在本篇博客中,我们将详细介绍常用的…