Skip to content

Python 基础速成

语法上的主要差异

比起c、go等语言来说,python使用**:和缩进**代替{}

这个表格叫AI提供的,随便看看就好:

维度C 语言Python
代码块标识{} 包裹代码块,缩进仅为美观缩进(通常 4 个空格)标识代码块,无 {}
语句结束必须用 ; 结尾换行即结束,无需 ;(一行多语句时才用)
变量声明需显式指定类型(如 int a;动态类型,无需声明(如 a = 1 自动识别为整数)
类型系统静态强类型,编译时检查类型动态强类型,运行时检查类型
内存管理手动 malloc/free 管理堆内存自动垃圾回收(引用计数 + 分代回收)
循环语法for(初始化; 条件; 更新) 风格for 元素 in 可迭代对象 风格(更简洁)
函数定义需指定返回值和参数类型(如 int add(int a, int b)无需类型声明(如 def add(a, b):
数据结构需手动实现数组、链表等内置列表 []、字典 {}、元组 () 等高级结构

Python 基础速成(核心知识点)

注释

单行:# 啊啊

多行:

python
"""
注释
注释
"""

变量与数据类型

python
# 常用类型
a = 1          # 整数
b = 3.14       # 浮点数
c = "hello"    # 字符串(单双引号均可)
print (para_str)
d = True       # 布尔值(True/False)
e = [1,2,3]    # 列表(可变,有序)
f = (1,2,3)    # 元组(不可变,有序)
g = {"name":"Tom", "age":18}  # 字典(键值对)
h = {1,2,3}    # 集合(无序,去重)

多行字符串

两边使用三个引号(无论单双)

python
para_str = """这是一个多行字符串的实例,
会读入换行
可以使用制表符 TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)

执行结果:

这是一个多行字符串的实例
多行字符串可以使用制表符
TAB (    )。
也可以使用换行符 [ 
 ]。

字符串其他用法

r"字符串" 忽略转义符

f"字符串" 用于替换其中的变量
python
>>> name = 'Runoob'
>>> f'Hello {name}'  # 替换变量
'Hello Runoob'
>>> f'{1+2}'         # 使用表达式
'3'

>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'
类型占位符/格式符

类似c语言那样的东东

python
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
符 号描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址

辅助指令:

符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
<sp>在正数前面显示空格
#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0显示的数字前面填充'0'而不是默认的空格
%'%%'输出一个单一的'%'
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

运算符

  • 算术:+ - * / % **(幂) //(整除)
  • 比较:== != > < >= <=
  • 逻辑:and or not
  • 成员:in(如 3 in [1,2,3]True

控制结构

python
# 条件判断
age = 18
if age < 18:
    print("未成年")
elif age == 18:
    print("刚成年")
else:
    print("成年")

# for循环(遍历列表/字符串等)
for i in range(5):  # range(5) → 0,1,2,3,4
    print(i)

# while循环
count = 0
while count < 3:
    print(count)
    count += 1

函数

python
def greet(name, greeting="你好"):  # greeting有默认值
    return f"{greeting}, {name}!"  # f-string格式化字符串

print(greet("Tom"))                # 输出:你好, Tom!
print(greet("Jerry", "Hi"))        # 输出:Hi, Jerry!

# 可变参数
def sum_all(*args):  # *args接收任意数量位置参数
    return sum(args)

print(sum_all(1,2,3,4))  # 输出:10

列表与字典操作

python
# 列表
nums = [1,2,3]
nums.append(4)       # 末尾添加 → [1,2,3,4]
nums.pop()           # 末尾删除 → [1,2,3]
nums[0]              # 索引访问 → 1
nums[1:3]            # 切片(左闭右开)→ [2,3]

字典

python
person = {"name":"Tom", "age":18}
person["name"]       # 按键访问 → "Tom"
person.get("gender", "未知")  # 安全访问(无key返回默认值)
person.keys()        # 所有键 → dict_keys(['name', 'age'])
person.values()      # 所有值 → dict_values(['Tom', 18])

面向对象入门

python
class Person:
    # 构造函数(初始化时调用)
    def __init__(self, name, age):
        self.name = name  # self代表实例本身
        self.age = age

    # 方法
    def introduce(self):
        print(f"我叫{self.name},今年{self.age}岁")

# 实例化
tom = Person("Tom", 18)
tom.introduce()  # 输出:我叫Tom,今年18岁

异常处理

python
try:
    1 / 0  # 会触发ZeroDivisionError
except ZeroDivisionError as e:
    print(f"出错了:{e}")
finally:
    print("无论是否出错都会执行")

文件操作

python
# 读取文件(with自动关闭文件)
with open("test.txt", "r", encoding="utf-8") as f:
    content = f.read()  # 读取全部内容
    print(content)

# 写入文件("w"覆盖,"a"追加)
with open("test.txt", "w", encoding="utf-8") as f:
    f.write("Hello, Python!")