数据的存储与运算

1.字面量

字面量:在程序中直接书写的固定值,就称为字面量。

字面量的种类:

|------------|-----------------|-------------------------------|------------------------------|
| 大类 | 具体类型 | 含义与特点 | 代码示例 (Python) |
| 数字字面量 | 整数 (Integer) | 没有小数部分的数字,支持正负数。 | 42 , -10 , 0 |
| | 浮点数 (Float) | 包含小数点的数字,支持科学计数法。 | 3.14 , -0.01 , 1.5e2 |
| | 复数 (Complex) | 包含实部和虚部的数字(虚部以 jJ 结尾)。 | 3+4j |
| 字符串字面量 | 字符串 (String) | 用引号包裹起来的文本数据。 | 'Hello' , "Python" |
| 布尔字面量 | 布尔值 (Boolean) | 只有两个绝对的值,代表逻辑上的真与假。 | True , False |
| 特殊字面量 | 空值 (None) | Python 中特有的字面量,表示"什么都没有"。 | None |
| 容器字面量 | 列表 (List) | 用方括号 [] 包裹的有序数据集合。 | [1, 'apple', 3.14] |
| | 元组 (Tuple) | 用圆括号 () 包裹的不可变有序数据集合。 | (1, 2, 3) |
| | 字典 (Dictionary) | 用花括号 {} 包裹的键值对(Key-Value)。 | {'name': 'Tom', 'age': 20} |
| | 集合 (Set) | 用花括号 {} 包裹的无序且不重复的数据集合。 | {1, 2, 3} |

2.变量

变量:程序中用来存储单个数据的容器,通常会把经常发生变化的数据存储在变量中。

python是动态类型语言,一个变量是可以存储不同的类型的数据。(但在项目开发中,推荐变量只存储一种类型的数据)

3.标识符

标识符:是程序员在代码中为变量、函数、类等元素所起的名字。

软性规范(PEP 8 标准,建议遵守 ✅)

|------------------------|-------------------------|---------------------------|---------------------------------------|
| 适用对象 | 命名规范 | 说明 | 示例 |
| 变量 (Variables) | 蛇形命名法 (snake_case) | 全小写,单词之间用下划线连接。 | user_age , first_name |
| 函数 (Functions) | 蛇形命名法 (snake_case) | 同上,通常以动词开头,表示动作。 | get_user_info() , calculate_sum() |
| 类 (Classes) | 大驼峰命名法 (PascalCase) | 每个单词的首字母都大写,不使用下划线。 | UserProfile , ShoppingCart |
| 常量 (Constants) | 全大写蛇形命名 | 全部大写,单词之间用下划线连接。通常放在文件顶部。 | MAX_CONNECTIONS , PI |

2.常见数据类型

|----------|---------------|----------------|-----------------------------------------|---------------------------|
| 大类 | 数据类型 | 关键字/符号 | 特点说明 | 代码示例 |
| 数字类型 | 整数型 (Integer) | int | 表示没有小数点的全数字。 | age = 25 |
| | 浮点型 (Float) | float | 表示带有小数点的数字。 | price = 19.99 |
| 文本类型 | 字符串型 (String) | str | 用单/双引号包裹的任何文字、字母或符号。 | name = "张三" |
| 布尔类型 | 布尔型 (Boolean) | bool | 只有 True (真)和 False (假)两个绝对值,用于逻辑判断。 | is_vip = True |
| 容器类型 | 列表型 (List) | list / [] | 有序的数据集合, ,每个元素都有明确的位置(下标 / 索引) 。 | fruits = ["苹果", "香蕉"] |
| | 元组型 (Tuple) | tuple / () | 有序的数据集合,一旦创建绝对不可修改(锁死)。 | rgb = (255, 0, 0) |
| | 字典型 (Dict) | dict / {} | 键值对(Key-Value)存储,通过"键名"快速查找对应"内容"。 | user = {"name": "张三"} |
| | 集合型 (Set) | set / {} | 无序的数据集合,系统会自动去重,保证元素绝对不重复。 | unique_nums = {1, 2, 3} |

通过type()语句来得到数据的类型,具体的语法为:type(要查看类型的数)

复制代码
# # 3.常见数据类型:整型、浮点型、字符串型、布尔型、容器类型等
# print(type("hello"))
# print(type(10))
# print(type(3.14))
# print(type(True))
# # 变量本身是没有类型的,type(变量)输出的类型是变量中存储的数据的类型
# num = 50
# print(num)
# print(type(num))
1.字符串

字符:是文本世界的基本单位,一个字母、一个数字、一个标点符号、一个汉字都是一个字符。

字符是字符串的基本单位。

|----------|--------------------------|-----------------------------------------------|
| 转义字符 | 含义与作用 | 实际效果描述 |
| \n | 换行 (Newline) | 将光标移动到下一行的开头。这是最常用的转义字符。 |
| \t | 横向制表符 (Tab) | 相当于按了一下键盘上的 Tab 键,通常用来对齐文本(跳到下一个制表位)。 |
| \ | 反斜杠本身 | 因为 \ 被用来做转义的起手式了,如果你想在文本里单纯打出一个 \ ,就得写两个。 |
| ' | 单引号 | 在单引号包裹的字符串中,强行打出一个单引号,防止代码提前结束。 |
| " | 双引号 | 在双引号包裹的字符串中,强行打出一个双引号。 |
| \r | 回车 (Carriage Return) | 将光标移到当前行的最开头(后面的输出会覆盖前面的内容)。 |
| \b | 退格 (Backspace) | 相当于按了一下键盘的退格键,删掉前面的一个字符。 |

复制代码
# # 4.字符串
# s1 = "gys\n"
# s2 = 'it\'s very nice'
# s3 = """
# date:190219
# we are togethers
# """

# print("s1,s2,s3")
2.字符串拼接

字符串拼接可以直接使用(+)进行拼接。

+可以用来拼接两个字符串,但是无法将非字符串与字符串进行拼接(非字符串需要转换为字符串类型)

复制代码
# # 5.字符串拼接
# s1 = "123" "456" "789"
# print("s1")

# name = "gys"
# age = "26"
# pro = "物联网工程"
# hobby = "python"
# print("大家好,我是%s, 今年%s岁, 学习的专业是%s, 爱好%s" %(name, age, pro, hobby))
3.字符串格式化

通过%s占位符的形式完成字符串和变量的快速拼接。(%s表示我要占位,s表示将变量转为字符串放入占位的位置)

可以通过f"内容{变量}"的形式来完成格式化。

3.输入和输出

输入:input语句(函数)的功能是获取键盘输入的数据,具体的用法是为:name = input(提示信息)

print: 将数据输出到控制台,具体用法为:print(数据。。。)

复制代码
# 6.输入与输出
name = input("请输入您的名字:")
age = input("请输入您的年龄: ")
print(f"您的名字是{name}, 年龄{age}")

4.运算符

1. 算术运算符

|---------|--------|--------------------------------|------------------------|
| 运算符 | 名称 | 作用说明 | 代码示例与结果 |
| + | 加 | 两个对象相加(数字相加,字符串相连)。 | a + b 输出 13 |
| - | 减 | 得到负数或一个数减去另一个数。 | a - b 输出 7 |
| ***** | 乘 | 两个数相乘,或是返回一个被重复若干次的字符串。 | a * b 输出 30 |
| / | 除 | x 除以 y结果永远是浮点数(带小数)。 | a / b 输出 3.3333... |
| // | 取整除 | 返回商的整数部分(向下取整,抛弃小数部分)。 | a // b 输出 3 |
| % | 取余(取模) | 返回除法的余数,常用来判断奇偶数。 | a % b 输出 1 |
| ****** | 幂(次方) | 返回 xy 次方。 | a ** b 输出 100 |

2. 比较(关系)运算符

用来比较两个值的大小或是否相等。它们的计算结果永远是布尔值( True****或 False**)**。

(假设 a = 10*,* b = 20*)*

|---------|--------|---------------------------------------|---------------------|
| 运算符 | 名称 | 作用说明 | 代码示例与结果 |
| == | 等于 | 比较对象的值是否相等。(注意:两个等号才是比较,一个等号是赋值!) | a == b 输出 False |
| != | 不等于 | 比较两个对象的值是否不相等。 | a != b 输出 True |
| > | 大于 | 左边是否大于右边。 | a > b 输出 False |
| < | 小于 | 左边是否小于右边。 | a < b 输出 True |
| >= | 大于等于 | 左边是否大于或等于右边。 | a >= b 输出 False |
| <= | 小于等于 | 左边是否小于或等于右边。 | a <= b 输出 Tr |

3. 赋值运算符

用来给变量"装东西"的符号。

(假设 a = 10*)*

|---------|--------|---------------------|----------------------------|
| 运算符 | 名称 | 作用说明 | 等价于 |
| = | 简单赋值 | 将右侧的值赋给左侧的变量。 | c = a + b |
| += | 加法赋值 | 将自身加上右边的值,再重新赋值给自身。 | a += 5 等价于 a = a + 5 |
| -= | 减法赋值 | 同上,做减法。 | a -= 5 等价于 a = a - 5 |
| *= | 乘法赋值 | 同上,做乘法。 | a *= 5 等价于 a = a * 5 |
| /= | 除法赋值 | 同上,做除法。 | a /= 5 等价于 a = a / 5 |
| //= | 取整除赋值 | 同上,做取整除。 | a //= 5 等价于 a = a // 5 |

4. 逻辑运算符

用来组合多个条件判断,就像我们日常说话中的"并且"、"或者"、"相反"。

(假设 a = True*,* b = False*)*

|---------|--------|-----------------------------------------------|-----------------|
| 运算符 | 名称 | 作用说明 | 记忆口诀 |
| and | 与 | 两边都为 True ,结果才为 True ;否则为 False 。 | "一假必假,全真才真" |
| or | 或 | 两边只要有一个 True ,结果就是 True 。 | "一真必真,全假才假" |
| not | 非 | 颠倒黑白,把 True 变成 FalseFalse 变成 True 。 | "唱反调" |

5. 成员运算符

这是 Python 非常人性化的一类运算符,读起来就像英语短句,专门用来测试某个元素是否在列表、字符串或字典等容器中。

|------------|----------------------------|-------------------------|--------|
| 运算符 | 作用说明 | 代码示例 | 结果 |
| in | 如果在指定的序列中找到值,返回 True 。 | "P" in "Python" | True |
| not in | 如果在指定的序列中没有找到值,返回 True 。 | "x" not in ["a", "b"] | True |

6. 身份运算符

用来比较两个对象的内存地址是否相同(即判断它们是不是完完全全的"同一个东西",而不仅仅是长得一样)。

|------------|-----------------------|--------------|------------------|
| 运算符 | 作用说明 | 代码示例 | 结果 |
| is | 判断两个标识符是不是引用自同一个内存对象。 | x is y | True / False |
| is not | 判断两个标识符是不是引用自不同的内存对象。 | x is not y | True / False |

7. 位运算符

|---------|--------|-----------------------------------|
| 运算符 | 名称 | 符号 |
| & | 按位与 | 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| | | 按位或 | 只要对应的二个二进位有一个为1时,结果位就为1。 |
| ^ | 按位异或 | 当两对应的二进位相异时,结果为1 |
| ~ | 按位取反 | 对数据的每个二进制位取反,即把1变为0,把0变为1 |
| << | 左移动 | 运算数的各二进位全部左移若干位 |
| >> | 右移动 | 运算数的各二进位全部右移若干位 |