1. Hello World

  // C
  #include <stdio.h>
  int main() {
      printf("Hello, world!\n");
      return 0;
  }
 ​
  # Python
  print("Hello, world!")
  • 无 main 函数,无分号,无大括号

  • 直接写,从上到下执行


2. 变量与类型

特性

C

Python

声明

int a;

直接赋值:a = 10

类型

静态类型

动态类型,运行时决定

类型检查

编译期

运行期

  a = 10           # int
  b = 3.14         # float
  c = "hello"      # str
  d = True         # bool
  e = None         # 空值,类似 NULL

注意None 不是 0,也不是 false,它是一个独立的对象。

  # 类型随时可变(不推荐滥用)
  x = 42
  x = "now I'm a string"

3. 基本数据类型

数值

  a = 42           # int(无大小限制)
  b = 3.14         # float(双精度)
  c = 1 + 2j       # complex(复数)

Python 的 int 不会溢出 — 2**1000 也是一个整数。

字符串

  s1 = "double quotes"
  s2 = 'single quotes'      # 没区别
  s3 = """multi
  line"""                    # 三引号支持多行
  •
  len(s)           # 长度
  s[0]             # 索引,同 C
  s[-1]            # 倒数第一个
  s[1:3]           # 切片 [1,3),即索引 1,2

没有 char 类型 — 单个字符就是长度 1 的字符串。


4. 运算符

大部分和 C 一致,差异:

  # 幂运算
  x = 2 ** 10      # 1024
  •
  # 整除
  x = 7 // 2       # 3(向下取整)
  x = -7 // 2      # -4(注意!不是 -3)
  •
  # 逻辑运算符(用单词,不用 && || !)
  a and b          # && 的替代
  a or b           # || 的替代
  not a            # ! 的替代
  •
  # 比较可以链式
  1 < x < 10       # C 里必须写成 1 < x && x < 10

5. 控制流

if / elif / else

  x = 10
  if x > 0:
      print("positive")
  elif x == 0:
      print("zero")
  else:
      print("negative")
  • 缩进 代替大括号

  • 缩进必须一致(通常 4 空格)

  • 只能写为elif

  • elif后面存在 :

while

  i = 0
  while i < 10:
      print(i)
      i += 1       # Python 没有 ++ / --

for(代替 C 的三段式 for)

 # 等价于 for (int i = 0; i < 10; i++)
 for i in range(10):
     print(i)
 ​
 # range(start, stop, step)
 for i in range(5, 0, -1):   # 5,4,3,2,1
     print(i)
 ​
 # 遍历列表
 for item in [1, 2, 3]:
     print(item)

range(10)0,1,2,...,9(不含 10)


6. 函数

 def add(a, b):
     """Return a + b."""    # docstring(可选)
     return a + b
 ​
 # 调用
 result = add(3, 5)

C

Python

int add(int a, int b)

def add(a, b):

声明返回类型

不声明,可返回任意类型

无返回值要写 void

不写 return 返回 None

参数特性

 # 默认参数
 def greet(name, greeting="Hello"):
     print(f"{greeting}, {name}")
 ​
 # 关键字参数(调用时指定参数名)
 greet(greeting="Hi", name="Tom")
 ​
 # 可变参数
 def sum_all(*args):
     return sum(args)      # args 是一个 tuple
 ​
 sum_all(1, 2, 3)          # 6

7. 数据结构比 C 方便的地方

列表(≈ 动态数组)

 arr = [1, 2, 3]
 arr.append(4)             # 追加
 arr.insert(0, 0)          # 在开头插入
 arr.pop()                 # 弹出末尾
 arr[0]                    # 索引
 len(arr)                  # 长度

字典(≈ 哈希表)

 d = {"name": "Alice", "age": 25}
 d["name"]                 # "Alice"
 d["age"] = 26
 "name" in d               # True — 判断 key 是否存在
 d.keys()                  # 所有键
 d.values()                # 所有值

元组(不可变列表)

 t = (1, 2, 3)
 t[0]                      # 1
 # t[0] = 0               # 报错!不能修改

用于函数返回多个值:

 def min_max(arr):
     return min(arr), max(arr)   # 返回元组
 ​
 low, high = min_max([3, 1, 4, 1, 5])   # 解包

8. 列表推导式(List Comprehension)

C 没有的便捷语法:

 # 生成 0~9 的平方
 squares = [x**2 for x in range(10)]
 # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 ​
 # 带条件
 evens = [x for x in range(20) if x % 2 == 0]
 # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

等价于:

 evens = []
 for x in range(20):
     if x % 2 == 0:
         evens.append(x)

9. 字符串格式化

 name = "World"
 ​
 # f-string(Python 3.6+,推荐)
 print(f"Hello, {name}")
 ​
 # 旧式 %(类似 C printf)
 print("Hello, %s" % name)
 ​
 # format 方法
 print("Hello, {}".format(name))

f-string 里可以写表达式:

 print(f"2 + 3 = {2 + 3}")
 print(f"π ≈ {3.14159:.2f}")   # π ≈ 3.14

10. 文件读写

 # 读(with 语句自动关闭文件,类似 RAII)
 with open("file.txt", "r") as f:
     content = f.read()          # 整个文件
     lines = f.readlines()       # 按行列表
 ​
 # 写
 with open("file.txt", "w") as f:
     f.write("Hello\n")
 ​
 # 追加
 with open("file.txt", "a") as f:
     f.write("more\n")

C 的 fopen/fclose/fprintf/fscanf → Python 的 open/with/read/write


11. 异常处理

 try:
     x = 1 / 0
 except ZeroDivisionError:
     print("can't divide by zero")
 except Exception as e:
     print(f"unexpected error: {e}")
 finally:
     print("always runs")       # 类似 C 的 cleanup 代码

不用检查返回值 — 出错了抛异常就是。


12. 常用内置函数

 len(s)        # 长度
 range(n)      # 0..n-1 序列
 type(x)       # 获取类型
 int(x)        # 转整型
 float(x)      # 转浮点
 str(x)        # 转字符串
 print(x)      # 打印
 input(s)      # 读一行字符串
 sum(lst)      # 求和
 len(lst)      # 长度
 max(lst)      # 最大值
 min(lst)      # 最小值
 sorted(lst)   # 排序(返回新列表)

13. 不同点速查

C

Python

int a[10]

a = [0] * 10

for (i=0; i<n; i++)

for i in range(n):

printf("%d", x)

print(x)print(f"{x}")

scanf("%d", &x)

x = int(input())

#define N 100

N = 100(约定全大写表示常量)

NULL

None

true/false

True/False

&& \| !

and or not

// 注释

# 注释

大括号 + 分号

缩进(4 空格)

#include

import


14. 快速上手建议

NaN. 装 Python 后,直接打开终端输 python 进交互模式当计算器玩 NaN. 写 .py 文件,python 文件名.py 运行 NaN. 不需要 main() — 但可以用这个惯用写法让文件既可导入又可运行:

 def main():
     print("Hello")
 ​
 if __name__ == "__main__":
     main()
  1. 想查什么函数:help(函数名)print(函数名.__doc__)

推荐编辑器:VS Code + Python 插件。写一行跑一行,不用编译。


有 C 基础学 Python 最难改的习惯是:忘掉分号、忘掉类型声明、用缩进找感觉。前半小时别扭,之后就回不去了。