Skip to content

01 · Python 语法基础 ​

🎯 难度:零基础⏱ 预计:60 分钟# 变量# 缩进# 控制流

缩进就是代码块 ​

js
const age = 20
if (age >= 18) {
  console.log('成年了')
} else {
  console.log('未成年')
}
python
age = 20
if age >= 18:
    print("成年了")
else:
    print("未成年")

三件事:没有 const;条件后面写 :;块内统一缩进 4 个空格。不同层级的缩进不能混用 Tab 和空格。

变量和基础类型 ​

python
name = "小林"       # str,字符串
age = 28           # int,整数
price = 0.15       # float,浮点数
is_ready = True    # bool:True / False,首字母大写
result = None      # 空值,类似 null

print(type(name))   # <class 'str'>
print(f"你好 {name},今年 {age} 岁")  # f-string 类似 JS 模板字符串

习惯:变量和函数使用 snake_case,类名使用 PascalCase,约定常量使用 UPPER_CASE。

python
MAX_STEPS = 8  # 只是约定,不是不能修改

转换类型:比 JS 更明确 ​

python
raw = "42"
print(int(raw) + 1)        # 43
print(str(42) + "元")      # 42元
print(float("3.14"))       # 3.14
# print("42" + 1)         # TypeError,不会偷偷转成字符串

input() 返回的永远是字符串:

python
name = input("你的名字:")
print(f"你好,{name}!")

运算符和判断 ​

JSPython说明
=====值相等;Python 没有 ===
!==!=值不相等
&& / || / !and / or / not逻辑运算,and/or 也返回操作数
null 判断x is Noneis 判断是否为同一对象,不要用来比较字符串
condition ? a : ba if condition else b条件表达式
Math.floor(a / b)a // b向下取整除法
a ** ba ** b幂运算
python
score = 82
if score >= 90:
    grade = "优秀"
elif score >= 60:           # elif,不是 else if
    grade = "及格"
else:
    grade = "需要努力"
print(grade)

Python 的真假值和 JS 不一样

None、False、数值 0、空字符串,以及 空 list / dict / set 都是假。JS 的 [] 和 {} 则是真。

True == 1 在 Python 中为真,所以 == 也不能直接理解为 JS 的严格相等。

循环 ​

python
for i in range(3):  # 0、1、2;右边界不包含
    print(i)

for name in ["Alice", "Bob"]:
    print(name)

for index, name in enumerate(["Alice", "Bob"], start=1):
    print(index, name)

remaining = 3
while remaining > 0:
    remaining -= 1
    print(remaining)

break 跳出循环,continue 跳过当前轮。这两个你已经熟悉了。后面的 Agent 循环,本质上就是一个带退出条件的 for 或 while。

字符串常用操作 ​

python
text = "  hello agent  "
print(text.strip())               # 去掉两侧空白
print(text.upper())               # 转大写
print("hello,world".split(","))    # ['hello', 'world']
print(" / ".join(["Python", "AI"]))
print("agent" in text)            # True,判断包含
print(text.replace("agent", "AI"))

prompt = """你是一个助手。
请使用中文回答。
"""  # 三引号可以写多行字符串

动手练习 ​

写一个程序:给定每天学习分钟数 [20, 45, 0, 60, 15],输出总分钟数、学习天数(大于 0 的天数)和「坚持了 X 天」。

参考答案
python
minutes = [20, 45, 0, 60, 15]
total = 0
days = 0
for value in minutes:
    total += value
    if value > 0:
        days += 1
print(total)                      # 140
print(f"坚持了 {days} 天")          # 坚持了 4 天

检查点:如果把 print(total) 缩进到 for 里面,输出会有什么变化?理解这件事,比记住所有运算符更重要。

用心写给每一个想入门 Agent 开发的前端工程师