一文读懂 Python 基础语法 —— C/C++ 工程师转 Python 最佳入门指南


📖 博主新书已上线,请多多支持:《Yocto项目实战教程:高效定制嵌入式Linux系统》。
🎥 更多学习视频,请关注博主 B 站:嵌入式Jerry



一文读懂 Python 基础语法 —— C/C++ 工程师转 Python 最佳入门指南

作者:嵌入式 Jerry


前言

Python 以其简洁、优雅、强大的表达能力,成为当今最流行的编程语言之一。对于有 C/C++ 基础的工程师来说,转学 Python 并不难,但想要用好 Python,需要理解其背后的语法风格与“设计哲学”。本文将以实例和类比的方式,系统梳理 Python 核心语法规律,帮助你快速掌握这门高效的语言。


1. 基本语法结构

1.1 注释与缩进

Python 注释
  • 单行注释:# 注释内容
  • 多行注释:通常用三个单引号或三个双引号包裹
# 这是单行注释
'''
这是
多行注释
'''
缩进控制语句块
  • Python 用缩进(通常4个空格)来标识代码块,而不是像 C/C++ 那样用 {}
  • 缩进是语法的一部分,必须严格统一!
if True:
    print("Hello")  # 这里的缩进代表 if 体
else:
    print("World")

对比C/C++
C/C++ 用大括号 {},Python 用缩进,且强制。


1.2 变量声明与类型

变量声明
  • 无需声明类型,变量在第一次赋值时自动创建。
x = 10        # 整数
name = "Tom"  # 字符串
pi = 3.14     # 浮点数
动态类型
  • Python 是动态类型语言,变量类型随赋值而变化。
a = 10
a = "now I'm a string"

对比C/C++
C/C++ 变量需声明类型,类型错误编译报错;Python 运行时才确定类型。


1.3 数据类型与常用内置类型

常用类型
  • 数字型intfloatcomplex
  • 字符串str
  • 布尔型bool
  • 列表list
  • 元组tuple
  • 字典dict
  • 集合set
实例
num = 42          # int
f = 3.14          # float
flag = True       # bool
s = "hello"       # str
lst = [1, 2, 3]   # list
t = (1, 2, 3)     # tuple
d = {'a': 1, 'b': 2}  # dict
s = set([1, 2, 3])    # set

对比C/C++
Python 内置多种高级数据结构,字符串不可变,列表相当于 C++ 的 vector。


2. 运算符和表达式

2.1 算术运算符

a = 7 + 3   # 加法
b = 7 - 3   # 减法
c = 7 * 3   # 乘法
d = 7 / 3   # 浮点除法(结果为 float)
e = 7 // 3  # 整数除法(取整)
f = 7 % 3   # 取余
g = 7 ** 2  # 幂运算

2.2 比较和逻辑运算符

a = 5 > 3      # True
b = 5 == 5     # True
c = 5 != 4     # True
d = (3 < 5) and (5 < 10)
e = (3 < 2) or (4 > 1)
f = not (3 == 3)

3. 控制结构

3.1 条件语句 if/elif/else

x = 10
if x > 0:
    print("正数")
elif x == 0:
    print("零")
else:
    print("负数")

注意elif 是“else if”的简写。


3.2 循环结构

for 循环
# 遍历列表
for i in [1, 2, 3]:
    print(i)
    
# 遍历区间
for i in range(5):  # 0, 1, 2, 3, 4
    print(i)
while 循环
i = 0
while i < 5:
    print(i)
    i += 1
break / continue
for i in range(10):
    if i == 5:
        break    # 提前跳出循环
    if i % 2 == 0:
        continue # 跳过偶数
    print(i)     # 输出 1,3

4. 函数与参数

4.1 基本定义

def add(a, b):
    return a + b

4.2 默认参数、可变参数

def say(msg="Hello"):
    print(msg)

say()        # 输出 Hello
say("Hi")    # 输出 Hi

def my_sum(*args):  # 可变参数,打包成元组
    return sum(args)

print(my_sum(1,2,3,4))

4.3 关键字参数

def person(name, age=18, **kwargs):
    print(name, age, kwargs)

person("Tom", city="Shenzhen", job="Engineer")

4.4 Lambda(匿名函数)

f = lambda x, y: x + y
print(f(2, 3))  # 5

5. 常用内置数据结构

5.1 列表(list)

lst = [1, 2, 3]
lst.append(4)
lst.pop()
lst[0] = 10
print(lst)
  • 切片(Slice)
print(lst[1:3])   # 取索引1和2的元素
print(lst[::-1])  # 倒序

5.2 字典(dict)

d = {"name": "Tom", "age": 20}
print(d["name"])
d["city"] = "Shenzhen"
print(d)
for key, value in d.items():
    print(key, value)

5.3 元组(tuple)

t = (1, 2, 3)
print(t[0])

元组不可变,类似 C++ 的 const std::vector


5.4 集合(set)

s = set([1, 2, 2, 3])
s.add(4)
s.remove(2)
print(s)

6. 字符串处理

6.1 基本操作

s = "hello world"
print(s.upper())
print(s.replace("hello", "hi"))
print(s[0:5])
print(len(s))

6.2 格式化字符串

  • f-string(推荐,Python 3.6+)
name = "Tom"
age = 18
print(f"My name is {name}, age {age}")
  • % 格式化
print("Name: %s, Age: %d" % (name, age))

7. 列表推导式/生成式

Python 有非常简洁强大的列表生成语法。

squares = [x * x for x in range(10)]
evens = [x for x in range(10) if x % 2 == 0]

对比C++11
C++11也支持类似的 lambda 和 std::transform,但语法远不如 Python 简洁。


8. 异常处理

try:
    result = 10 / 0
except ZeroDivisionError as e:
    print("除零错误:", e)
finally:
    print("无论如何都会执行")

9. 模块与包

9.1 导入模块

import math
print(math.sqrt(9))
from math import sin, pi
print(sin(pi/2))

9.2 自定义模块

  • 保存为 my_module.py
def say_hello():
    print("Hello from module")
  • 在其他文件引用:
import my_module
my_module.say_hello()

10. 面向对象编程(OOP)

10.1 类与对象

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print(f"{self.name} makes a sound.")

dog = Animal("Dog")
dog.speak()

10.2 继承

class Dog(Animal):
    def speak(self):
        print(f"{self.name} says: Wang Wang!")

d = Dog("Buddy")
d.speak()

10.3 数据类(dataclass)

Python 3.7+ 提供了 @dataclass,简化数据结构定义:

from dataclasses import dataclass

@dataclass
class Point:
    x: int
    y: int

p = Point(3, 4)
print(p)

11. 文件操作

# 写文件
with open("test.txt", "w") as f:
    f.write("hello python\n")

# 读文件
with open("test.txt", "r") as f:
    content = f.read()
    print(content)

12. 标准库与第三方库

12.1 常用标准库

  • os:文件和目录操作
  • sys:系统参数
  • timedatetime:时间处理
  • re:正则表达式
  • json:JSON 解析
  • csv:CSV 文件读写
import os
print(os.listdir("."))

12.2 pip 安装第三方库

pip install requests
import requests
r = requests.get("https://www.example.com")
print(r.text)

13. 常见语法糖与“Pythonic”写法

13.1 enumerate

lst = ['a', 'b', 'c']
for idx, value in enumerate(lst):
    print(idx, value)

13.2 zip

names = ['Tom', 'Jerry']
scores = [90, 95]
for name, score in zip(names, scores):
    print(name, score)

13.3 生成器(Generator)

def fib(n):
    a, b = 0, 1
    for _ in range(n):
        yield a
        a, b = b, a + b

for x in fib(5):
    print(x)

14. Python 与 C/C++ 的差异和规律总结

14.1 语法简洁,格式自由但需缩进

  • Python 用缩进代替大括号 {}
  • 无须写类型声明,变量直接用。

14.2 数据结构更高效

  • 内置 list/dict/tuple/set,操作灵活强大。
  • 字符串不可变。

14.3 for 循环更强大

  • 可直接遍历任意序列。
  • 支持 enumerate、zip,循环更直观。

14.4 支持函数式编程

  • 支持 map、filter、lambda、推导式。
  • 代码高度抽象,简洁表达复杂逻辑。

14.5 面向对象灵活

  • 类成员定义简单,构造函数为 __init__
  • 支持多重继承,支持装饰器和数据类。

14.6 模块化与包管理更易用

  • import 语法加载模块
  • pip 管理第三方库

14.7 异常处理更安全

  • try/except/finally,无需声明异常类型。

15. Python 编程的最佳实践与建议

  1. 养成良好的缩进习惯,推荐 4 个空格。
  2. 用好内置数据结构,提升代码效率。
  3. 多用列表推导式、枚举、zip,写出 Pythonic 代码。
  4. 掌握异常处理,保证健壮性。
  5. 多看标准库文档,官方文档极为详细。
  6. 不要死记语法,动手多练习,理解语义。

在这里插入图片描述

16. 典型实用代码示例

16.1 快速统计单词出现次数

s = "to be or not to be"
words = s.split()
count = {}
for w in words:
    count[w] = count.get(w, 0) + 1
print(count)

16.2 简易命令行参数解析

import sys
if len(sys.argv) > 1:
    print("参数:", sys.argv[1:])
else:
    print("无参数")

16.3 用 dict 实现 switch-case 效果

def foo():
    print("foo")

def bar():
    print("bar")

action = "foo"
actions = {"foo": foo, "bar": bar}
actions.get(action, lambda: print("default"))()

17. 附录:常用 Python 语法速查表

C/C++ 关键字Python 等价
int, float直接赋值,无需类型声明
#includeimport
printfprint
if/elseif/elif/else
for/whilefor/while
{}缩进
;(分号结尾)无需分号
struct/classclass/@dataclass
switch-caseif-elif / dict 映射
指针引用一切为对象/引用语义
malloc/free自动内存管理

结语

Python 用最小的语法负担、最大化表达能力,让程序员专注于业务本身。只要理解其基本规律,多加练习、拥抱其简洁的语法,你一定能成为高效的 Python 工程师。


📖 博主新书已上线,请多多支持:《Yocto项目实战教程:高效定制嵌入式Linux系统》。
🎥 更多学习视频,请关注博主 B 站:嵌入式Jerry


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值