Skip to content

02 基础语法

📋 资料说明

  • 来源:课程 day01 后半 ~ day02
  • 笔记尚硅谷大模型技术之Python1.0.docx 第 2~3 章
  • 每日一考day01.md(7题)、day02_答案.md(3题)
  • 视频:❌ 跳过(约 36 个视频)

🟢 🤖 AI 替代率:99%

为什么是这个水平:

本节涉及的所有内容——变量声明、数据类型、运算符、输入输出——都是确定性语法规则,没有任何设计决策或判断余地。AI 在训练数据中见过数亿行 Python 代码,对这些基础语法的生成准确率接近 100%。无论是代码示例、语法解释还是练习题,AI 都可以稳定输出正确结果。

唯一需要人类参与的可能是:type() 函数在不同场景下的输出结果判断,以及位运算等不常用的知识——这些属于"知道存在即可、用时查阅"的范畴。


👤 人工干预率:1%

几乎无需人工干预。建议:理解不同语言之间的语法差异(如 Python 的 // 是整除,Java 的 // 是注释),这一条在实际编码中很少出错。


1. 注释

python
# 单行注释:使用 # 号

"""
多行注释:使用三个双引号
可以写多行说明
"""

'''
三个单引号也可以
'''

2. 变量

变量的定义

python
# Python 是动态类型语言,变量不需要声明类型
name = "Alice"      # 字符串
age = 25            # 整数
height = 1.75       # 浮点数
is_student = True   # 布尔值

# 变量重新赋值可以改变类型(不推荐在正式代码中这样做)
age = "二十五"      # 从 int 变为 str

变量的内存模型

python
# Python 中的变量本质上是"标签"(引用),而非"盒子"
a = 10      # 变量 a 指向对象 10
b = a       # 变量 b 指向同一个对象 10
a = 20      # 变量 a 指向新对象 20,b 仍指向 10

print(b)    # 10

标识符命名规则

规则说明示例
组成字母、数字、下划线my_var, var1, _private
数字开头❌ 不允许1var
区分大小写nameName 不同
关键字不能使用 Python 保留字if, for, class
约定变量用小写+下划线user_name

Python 中的关键字列表:

python
import keyword
print(keyword.kwlist)
# ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', ...]

常量约定

Python 没有真正的常量。通常用全大写命名表示"请勿修改":

python
PI = 3.14159
MAX_CONNECTIONS = 100

3. 数据类型

基本数据类型

类型名称示例说明
int整数10, -5, 0任意大小(不限长度)
float浮点数3.14, 1.5e10双精度浮点
bool布尔值True, False注意大写开头
str字符串"Hello", 'World'单引号或双引号均可
NoneType空值None表示"没有值"

整数类型

python
# Python 整数支持任意精度
a = 42
b = 9999999999999999999999999999999  # 大整数没问题

# 不同进制表示
print(0b1010)   # 二进制 → 10
print(0o12)     # 八进制 → 10
print(0xA)      # 十六进制 → 10

# 进制转换
print(bin(10))   # '0b1010'
print(oct(10))   # '0o12'
print(hex(10))   # '0xa'

浮点数类型

python
# 浮点数精度问题(所有编程语言共有)
print(0.1 + 0.2)        # 0.30000000000000004
print(round(0.1 + 0.2, 1))  # 0.3

# 科学计数法
print(1.5e10)   # 15000000000.0
print(1.5e-10)  # 0.00000000015

布尔类型

python
# 布尔值实质上是整数的子类:True=1, False=0
print(True + True)      # 2
print(False * 10)       # 0

# 布尔转换
print(bool(1))      # True
print(bool(0))      # False
print(bool(""))     # False
print(bool("abc"))  # True
print(bool([]))     # False  (空容器为 False)

字符串类型

python
# 三种表示方式
s1 = '单引号'
s2 = "双引号"
s3 = """三引号:支持
换行"""

# 转义字符
print("Hello\nWorld")   # 换行
print("Tab\there")      # 制表符
print("她说:\"你好\"") # 转义双引号

# 原始字符串
print(r"C:\Users\name")  # 不转义:C:\Users\name

类型转换

python
# 转换为整数
print(int(3.14))     # 3(直接截断,不四舍五入)
print(int("42"))     # 42

# 转换为浮点数
print(float(3))      # 3.0
print(float("3.14")) # 3.14

# 转换为字符串
print(str(42))       # "42"
print(str(3.14))     # "3.14"

# 转换为布尔值
print(bool(1))       # True
print(bool(0))       # False

类型判断

python
print(type(10))          # <class 'int'>
print(type("hello"))     # <class 'str'>
print(isinstance(10, int))  # True

4. 运算符

算术运算符

运算符含义示例结果
+加法10 + 313
-减法10 - 37
*乘法10 * 330
/除法(浮点)10 / 33.333...
//整除10 // 33
%取余10 % 31
**幂运算2 ** 38

Python vs Java/JS 差异

  • Python 的 //整除(Java 和 JS 的 / 在整数操作时就是整除)
  • Python 的 / 总是返回浮点数(Java 需要手动转换为 float)
  • Python 的 ** 表示幂(Java 用 Math.pow(),JS 可用 ** 也可用 Math.pow()

赋值运算符

python
x = 10
x += 3      # x = x + 3
x -= 3      # x = x - 3
x *= 3      # x = x * 3
x /= 3      # x = x / 3
x //= 3     # x = x // 3
x %= 3      # x = x % 3
x **= 3     # x = x ** 3

比较运算符

运算符含义示例结果
==等于10 == 10True
!=不等于10 != 5True
>大于10 > 5True
<小于10 < 5False
>=大于等于10 >= 10True
<=小于等于10 <= 5False

Python 特性:支持链式比较

python
print(1 < 3 < 5)   # True(等价于 1 < 3 and 3 < 5)

逻辑运算符

运算符含义示例结果
andTrue and FalseFalse
orTrue or FalseTrue
notnot TrueFalse

Python vs Java/JS 差异

  • Python 用 and or not(单词)
  • Java 用 && || !(符号)
  • JS 两种方式都支持

成员运算符

python
print("a" in "abc")         # True
print("x" not in "abc")     # True
print(10 in [1, 2, 3])      # False

身份运算符

python
a = [1, 2, 3]
b = [1, 2, 3]
c = a

print(a == b)   # True  (值相等)
print(a is b)   # False (不同对象)
print(a is c)   # True  (同一对象)

# 小整数缓存(-5~256)
x = 256
y = 256
print(x is y)   # True(Python 缓存了小整数)

运算符优先级(从高到低)

**                          # 幂运算
+x, -x, ~x                 # 正负号、按位取反
*, /, //, %                # 乘除取余
+, -                       # 加减
<<, >>                     # 移位
&                          # 按位与
^                          # 按位异或
|                          # 按位或
==, !=, >, <, >=, <=      # 比较
not                        # 逻辑非
and                        # 逻辑与
or                         # 逻辑或

5. 输入与输出

python
# 基本输出
print("Hello World")

# 输出多个值(自动空格分隔)
print("Name:", "Alice", "Age:", 25)
# Name: Alice Age: 25

# 修改分隔符
print("a", "b", "c", sep="-")
# a-b-c

# 修改结束符(默认换行)
print("Hello", end=" ")
print("World")
# Hello World

# 输出到文件
with open("output.txt", "w") as f:
    print("写入文件", file=f)

格式化输出

python
name = "Alice"
age = 25

# 方式一:f-string(Python 3.6+,推荐)
print(f"Name: {name}, Age: {age}")
# Name: Alice, Age: 25

# 数字格式化
price = 3.14159
print(f"Price: {price:.2f}")     # Price: 3.14
print(f"Percent: {0.85:.1%}")    # Percent: 85.0%

# 方式二:format()
print("Name: {}, Age: {}".format(name, age))
print("Name: {n}, Age: {a}".format(n=name, a=age))

# 方式三:% 格式化(类 C 风格)
print("Name: %s, Age: %d" % (name, age))

input 输入

python
name = input("请输入名字: ")
print(f"你好, {name}")

# input 返回的是字符串,需要类型转换
age = int(input("请输入年龄: "))
print(f"明年你 {age + 1} 岁")

6. 练习题

练习 1:变量交换

不使用第三个变量,交换两个变量的值。

练习 2:类型转换

输入一个浮点数(如 3.14),分别输出它的整数部分、小数部分和字符串形式。

练习 3:计算器

输入两个数和一个运算符(+ - * /),输出计算结果。


参考答案

练习 1:

python
a, b = 10, 20
a, b = b, a  # Python 特有的多重赋值交换
print(a, b)  # 20 10

练习 2:

python
num = float(input("请输入浮点数: "))
print(f"整数部分: {int(num)}")
print(f"小数部分: {num - int(num)}")
print(f"字符串: {str(num)}")

练习 3:

python
a = float(input("第一个数: "))
b = float(input("第二个数: "))
op = input("运算符 (+ - * /): ")

if op == "+":
    print(f"{a} + {b} = {a + b}")
elif op == "-":
    print(f"{a} - {b} = {a - b}")
elif op == "*":
    print(f"{a} * {b} = {a * b}")
elif op == "/":
    print(f"{a} / {b} = {a / b}")

OPC 超级个体实战指南