面向所有人的Python编程——核心编程概念

2.1表达式1

2.1 常量(Constants)

📌 常量的本质

  • 固定不变的值:在程序运行过程中保持不变的数据

  • 主要类型

    • 数字常量:整数(如123)、浮点数(如98.6

    • 字符串常量:用引号括起来的文本(如"Hello"

💡 重要理解

  • 常量就是"通常不改变的量"

  • Python中没有真正意义上的"常量"关键字,但约定全大写的变量名表示常量(如MAX_VALUE = 100

2.2 保留字(Keywords)

🚫 保留字的特性

  • 专门用途:Python语言内部已赋予特定含义的单词

  • 不可挪用:不能用作变量名、函数名或其他标识符

🐶 生动类比

就像训练狗狗时,"walk"这个词已关联到"散步"的行为,所以只在想带狗出门时才说"walk"。保留字在Python中也有固定的"响应方式",不能随意使用。

⚠️ 关键规则

  • 使用保留字作为变量名会导致语法错误

  • 常见保留字:ifelsewhilefordefclassimport

2.3 变量(Variables)

📦 变量的本质

  • 内存标签:为内存存储位置分配的可读名称

  • 存储容器:类似于把东西装进箱子并贴上标签

🔠 变量命名规则

规则正确示例错误示例
可以包含:字母、数字、下划线student_namescore11student(数字开头)
区分大小写spamSpamSPAM 是三个不同变量-
不能用保留字my_printprint(保留字)
推荐使用描述性名称student_agetotal_scorexa1(不清晰)

💡 命名建议

  • 使用蛇形命名法(snake_case):good_variable_name

  • 保持一致性:整个程序中使用相同的命名风格

  • 反映用途:变量名应暗示存储的内容

🎯 赋值语句详解

🔄 赋值操作符(=)的真正含义

  • 不是数学相等x = x - 1 在数学上矛盾,但在Python中完全合法

  • 箭头比喻:更像是"把右边的值装进左边的变量盒子"

    x = 43      # 把43放进x盒子
    x = x - 1   # 从x盒子取出43,计算42,再把42放回x盒子

🔥 "防火墙"概念

等号就像防火墙:先完全计算右边表达式,然后将结果赋值给左边变量

📈 自增操作原理

x = 5
x = x + 1  # 执行过程:
           # 1. 读取x的当前值(5)
           # 2. 计算5 + 1得到6
           # 3. 将6赋值给x

🎮 综合示例与最佳实践

代码示例

# 常量使用(约定全大写)
MAX_ATTEMPTS = 3
PI = 3.14159

# 变量声明与赋值
student_count = 45
average_score = 87.5
welcome_message = "Welcome to Python!"

# 变量重新赋值
counter = 0
counter = counter + 1  # 自增:counter现在是1

# 同时赋值多个变量
x, y, z = 10, 20, "hello"

✅ 好的命名习惯

# 好的命名(清晰易懂)
hours_worked = 40
hourly_rate = 25.50
total_pay = hours_worked * hourly_rate

# 不好的命名(模糊难懂)
h = 40
r = 25.50
p = h * r

💎 核心要点总结

  1. 常量:不变的数据,包括数字和字符串

  2. 保留字:Python专用词汇,不可用作变量名

  3. 变量:存储数据的命名容器

  4. 赋值=表示"装入"而非"等于"

  5. 命名:遵循规则,追求清晰性和一致性

🚀 新手提示

  • 不需要记忆所有规则,实践中自然掌握

  • 遇到错误时,先检查变量名是否冲突

  • 使用good_name这样的命名方式作为标准

  • Python关注前后一致的变量名,而人类需要有意义的变量名

编程就像与计算机对话:你需要使用它能理解的语言(保留字),为存储空间起好名字(变量),并清楚表达你的意图(常量与赋值)。良好的命名习惯是优秀程序员的标志!

2.2表达式2

2.2 运算符与表达式详解

🔢 算术运算符

基本运算符

运算符名称示例结果说明
+加法5 + 38同数学加法
-减法5 - 32同数学减法
*乘法5 * 315同数学乘法
/除法9 / 24.5总是返回浮点数

特殊运算符

运算符名称示例结果用途
%取模(求余)17 % 52求余数
**幂运算2 ** 38乘方计算

📊 取模运算符(%)的实用场景

1. 判断奇偶性

x = 7
if x % 2 == 0:
    print("偶数")
else:
    print("奇数")  # 输出:奇数

2. 生成范围内数值

# 模拟扑克牌(52张)
card_number = random_number % 52  # 结果在0-51之间

3. 循环控制

# 每10次执行一次特殊操作
if counter % 10 == 0:
    print("已处理10次")

💪 幂运算符(**)详解

  • 基本用法base ** exponent

  • 示例

    6 ** 5  # 6的5次方 = 6×6×6×6×6 = 7776
    2 ** 10  # 2的10次方 = 1024

🎯 运算顺序(优先级)

PEMDAS规则记忆法

text

P - 括号 (Parentheses)       → 最高优先级
E - 指数 (Exponents)         → **
M - 乘法 (Multiplication)    → *
D - 除法 (Division)          → /
A - 加法 (Addition)          → +
S - 减法 (Subtraction)       → -  最低优先级

优先级层次表

优先级运算符描述结合性
1()括号从左到右
2**指数从右到左
3*/%乘、除、取模从左到右
4+-加、减从左到右

运算示例

# 括号最高优先级
2 * (3 - 1)    # = 2 * 2 = 4
(1 + 1) ** (5 - 2)  # = 2 ** 3 = 8

# 指数次高
2 ** 1 + 1     # = 2 + 1 = 3(不是4!)
3 * 1 ** 3     # = 3 * 1 = 3(不是27!)

# 乘除高于加减
2 * 3 - 1      # = 6 - 1 = 5(不是4!)
6 + 4 / 2      # = 6 + 2 = 8(不是5!)

# 同级从左到右
5 - 3 - 1      # = 2 - 1 = 1(不是3!)

🔍 数据类型与转换

type()函数

print(type(42))        # <class 'int'>
print(type(3.14))      # <class 'float'>
print(type("Hello"))   # <class 'str'>

类型转换函数

函数描述示例结果
int()转为整数int(3.9)3(截断,非四舍五入)
float()转为浮点数float(5)5.0
str()转为字符串str(100)'100'

⚠️ 重要提醒:浮点数精度问题

  • 问题:浮点数使用二进制表示,可能导致精度丢失

    0.1 + 0.2 == 0.3  # 返回False!

  • 解决方案

    • 金融计算:使用decimal模块

    • 近似比较:使用容差值

    • 显示格式化:使用格式字符串

🔄 Python 2与Python 3的除法差异

# Python 2
9 / 2   # 返回 4(整数除法)

# Python 3(改进!)
9 / 2   # 返回 4.5(总是返回浮点数)

# 两种版本都支持
9 // 2  # 返回 4(整数除法,取整)

📝 字符串运算符

拼接运算(+)

first = "Hello"
second = "World"
print(first + second)  # "HelloWorld"
print(first + " " + second)  # "Hello World"

重复运算(*)

word = "Hi "
print(word * 3)  # "Hi Hi Hi "

⚠️ 注意类型差异

# 数字加法 vs 字符串拼接
first = 10
second = 15
print(first + second)  # 25(数字加法)

first = '100'
second = '150'
print(first + second)  # '100150'(字符串拼接)

📋 实用建议

1. 使用括号增强可读性

# 难读
result = a * b + c / d - e

# 易读
result = (a * b) + (c / d) - e

2. 显式类型转换

# 避免隐式错误
age = input("请输入年龄:")  # 输入"25",返回字符串
years_to_100 = 100 - int(age)  # 需要显式转换

3. 浮点数处理策略

# 方法1:使用Decimal
from decimal import Decimal
price = Decimal('19.99')

# 方法2:格式化显示
total = 0.1 + 0.2
print(f"总计: {total:.2f}")  # 显示两位小数

💎 核心要点总结

  1. 运算符优先级:记住PEMDAS,不确定时加括号

  2. 除法差异:Python 3中/总是返回浮点数

  3. 类型意识:清楚每个变量的数据类型

  4. 浮点数陷阱:金融计算避免使用普通浮点数

  5. 字符串操作+用于拼接,*用于重复

实践建议:在编写复杂表达式时,先用括号明确意图,再根据情况简化。记住,代码不仅写给计算机看,也要写给未来的自己和其他开发者看!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值