当前位置: 首页 > news >正文

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":
        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 上展示的需求,如果还有其他需要调整的地方,请随时告诉我。

相关文章:

  • AIP-180 向后兼容
  • 统计矩的高阶推广:经验还是理论推导?
  • 计算图(Computation Graph)
  • git revert 用法实战:撤销一个 commit 或 merge
  • Go常见问题与回答(下)
  • 数据可视化革命!「图表狐」五大行业新范式:从科研论文到商业决策的AI进化论
  • 软件公司高新技术企业代办:机遇与陷阱并存-优雅草卓伊凡
  • ETL 自动化:提升数据处理效率与准确性的核心驱动力
  • 小红书 web x-s x-t X-Mns 分析
  • 行业分析---小米汽车2024全年财报
  • 基于Docker的OpenObserve快速搭建实现全链路可观测性远程管理
  • ZLinq:意在替代Linq的高性能.Net开源库
  • STM32/GD32主要学习内容
  • Python应用指南:利用高德地图API获取POI数据(关键词版)
  • 日常学习开发记录-select组件(2)
  • 【stm32】用从模式控制器 完成PWM的测量
  • Haption力反馈遥操作机器人:6自由度高精度技术,定义远程操作新标准
  • [特殊字符] 力扣热题 394:字符串解码(详细解析)(Go语言版)
  • C++ :顺序容器
  • 机械臂【逆运动学】
  • 美乌矿产协议签署被曝“临门一脚”时生变,美方提附加条件
  • 共绘“彩色上海”,IP SH艺术共创沙龙首期圆满举办
  • 街区党支部书记们亮出治理实招,解锁“善治街区二十法”
  • 国铁集团郑州局预计“五一”发送642.5万人
  • 太好玩了!坐进大卫·霍克尼的敞篷车穿越他画笔下的四季
  • 港理大公布多项AI+医工成果,助港建设国际医疗创新枢纽