主题
01 · Python 语法基础
缩进就是代码块
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}!")运算符和判断
| JS | Python | 说明 |
|---|---|---|
=== | == | 值相等;Python 没有 === |
!== | != | 值不相等 |
&& / || / ! | and / or / not | 逻辑运算,and/or 也返回操作数 |
null 判断 | x is None | is 判断是否为同一对象,不要用来比较字符串 |
condition ? a : b | a if condition else b | 条件表达式 |
Math.floor(a / b) | a // b | 向下取整除法 |
a ** b | a ** 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 里面,输出会有什么变化?理解这件事,比记住所有运算符更重要。