python3 能进入交互模式,看到 >>>确认 Python 版本:
python,用 python3。系统上 python 可能不存在或指向旧版本。
uv 是 Rust 写的 Python 包管理器,比 pip 快 10-100 倍,类比前端的 pnpm。
uv ≈ pnpm,pip ≈ npm。以后装包都用 uv add xxx。
终端输入 python3,进入交互模式:
创建 hello.py:
# hello.py
print("Hello, Python!")
print("今天是 Day 1")
执行:
文件第一行加 #!/usr/bin/env python3,给执行权限:
#!/usr/bin/env python3
print("Hello, Python!")
| 类型 | Python | JavaScript | 示例 |
|---|---|---|---|
| 整数 | int(任意精度) |
number(53 位精度) |
42, -7 |
| 浮点数 | float |
number |
3.14, -0.001 |
| 布尔 | bool(True/False) |
boolean(true/false) |
True, False |
10 / 3 // 3.333...
Math.floor(10 / 3) // 3
10 % 3 // 1
10 ** 3 // 1000
// 大数精度丢失
9999999999999999
10 / 3 # 3.333...
10 // 3 # 3(整除)
10 % 3 # 1
10 ** 3 # 1000
# 整数任意精度
9999999999999999
int 没有精度上限//True / False| 操作 | JavaScript | Python |
|---|---|---|
| 创建 | "hello" | "hello" |
| 拼接 | "a" + "b" | "a" + "b" |
| 重复 | "ab".repeat(3) | "ab" * 3 |
| 模板 | `Hello ${name}` | f"Hello {name}" |
| 长度 | str.length | len(str) |
| 索引 | str[0] | str[0] |
| 切片 | str.slice(1, 3) | str[1:3] |
const name = "Alice";
const age = 25;
console.log(`Name: ${name}, Age: ${age}`);
console.log(`Next year: ${age + 1}`);
name = "Alice"
age = 25
print(f"Name: {name}, Age: {age}")
print(f"Next year: {age + 1}")
f-string 格式化:
pi = 3.14159265
print(f"Pi: {pi:.2f}") # Pi: 3.14
print(f"Pi: {pi:10.2f}") # Pi: 3.14
num = 42
print(f"Binary: {num:b}") # Binary: 101010
print(f"Hex: {num:x}") # Hex: 2a
s = "Hello, Python!"
s.upper() # "HELLO, PYTHON!"
s.lower() # "hello, python!"
s.strip() # 去除首尾空白
s.replace("Python", "World")
s.split(",") # ["Hello", " Python!"]
s.startswith("Hello") # True
s.find("Python") # 7
s.count("o") # 2
# 链式调用
" hello ".strip().upper() # "HELLO"
const arr = [1, 2, 3, 4, 5];
arr.push(6);
arr.pop();
arr.slice(1, 3);
arr.map(x => x * 2);
arr.filter(x => x > 2);
arr.length;
arr = [1, 2, 3, 4, 5]
arr.append(6)
arr.pop()
arr[1:3]
[x * 2 for x in arr]
[x for x in arr if x > 2]
len(arr)
list 没有 map/filter 方法,用的是列表推导式(List Comprehension),Day 4 深入。
fruits = ["apple", "banana", "orange"]
fruits[0] # "apple"
fruits[-1] # "orange"(负数索引)
fruits[1:3] # ["banana", "orange"]
fruits.append("grape")
fruits.insert(1, "mango")
fruits.remove("banana")
del fruits[0]
len(fruits) # 长度
"apple" in fruits # True
fruits.sort()
sorted(fruits) # 返回新列表
创建 day1.py:
#!/usr/bin/env python3
"""Day 1 练习脚本"""
# 变量和类型
name = "Python 学习者"
day = 1
hours = 1.5
# f-string 输出
print(f"你好,{name}!")
print(f"今天是 Day {day},学习了 {hours} 小时")
# 数字运算
total_days = 56
progress = day / total_days * 100
print(f"进度:{progress:.1f}%")
# 列表操作
topics = ["环境搭建", "解释器", "数字", "字符串", "列表"]
print(f"\n今天学了 {len(topics)} 个主题:")
for topic in topics:
print(f" - {topic}")
print(f"\n明天是 Day {day + 1}")
print(f"距离毕业还有 {total_days - day} 天")
执行:
# 要求输出:
# ==================
# 姓名:张三
# 年龄:25
# 职业:前端工程师
# 学习 Python 第 1 天
# ==================
# 你的代码:
name = "张三"
age = 25
job = "前端工程师"
day = 1
print("==================")
print(f"姓名:{name}")
print(f"年龄:{age}")
print(f"职业:{job}")
print(f"学习 Python 第 {day} 天")
print("==================")
a = 17
b = 5
# 要求输出:
# 17 + 5 = 22
# 17 - 5 = 12
# 17 * 5 = 85
# 17 / 5 = 3.4
# 17 // 5 = 3
# 17 % 5 = 2
# 17 ** 2 = 289
# 你的代码:
a = 17
b = 5
print(f"{a} + {b} = {a + b}")
print(f"{a} - {b} = {a - b}")
print(f"{a} * {b} = {a * b}")
print(f"{a} / {b} = {a / b}")
print(f"{a} // {b} = {a // b}")
print(f"{a} % {b} = {a % b}")
print(f"{a} ** 2 = {a ** 2}")
shopping = ["牛奶", "面包", "鸡蛋"]
# 1. 添加 "苹果" 到末尾
# 2. 在 "面包" 前面插入 "黄油"
# 3. 删除 "鸡蛋"
# 4. 检查 "牛奶" 是否在清单中
# 5. 输出清单长度
# 6. 用 for 循环打印每一项
# 你的代码:
shopping = ["牛奶", "面包", "鸡蛋"]
# 1. 添加 "苹果" 到末尾
shopping.append("苹果")
print(f"添加苹果后:{shopping}")
# 2. 在 "面包" 前面插入 "黄油"
shopping.insert(1, "黄油")
print(f"插入黄油后:{shopping}")
# 3. 删除 "鸡蛋"
shopping.remove("鸡蛋")
print(f"删除鸡蛋后:{shopping}")
# 4. 检查 "牛奶" 是否在清单中
has_milk = "牛奶" in shopping
print(f"牛奶在清单中:{has_milk}")
# 5. 输出清单长度
print(f"清单长度:{len(shopping)}")
# 6. 用 for 循环打印每一项
print("购物清单:")
for item in shopping:
print(f" - {item}")
text = " Hello, Python World! "
# 1. 去除首尾空格
# 2. 转成大写
# 3. 把 "Python" 替换成 "编程"
# 4. 统计 "o" 出现的次数
# 5. 按空格分割成列表
# 6. 用 f-string 输出:处理后的文本是:xxx,共 xx 个字符
# 你的代码:
text = " Hello, Python World! "
# 1. 去除首尾空格
text = text.strip()
print(f"1. 去空格:'{text}'")
# 2. 转成大写
text_upper = text.upper()
print(f"2. 转大写:{text_upper}")
# 3. 把 "Python" 替换成 "编程"
text_replaced = text.replace("Python", "编程")
print(f"3. 替换后:{text_replaced}")
# 4. 统计 "o" 出现的次数
count_o = text.count("o")
print(f"4. 'o' 出现次数:{count_o}")
# 5. 按空格分割成列表
words = text.split()
print(f"5. 分割成列表:{words}")
# 6. 用 f-string 输出
print(f"6. 处理后的文本是:{text_replaced},共 {len(text_replaced)} 个字符")
python3 能进入交互模式,看到 >>>2 + 2、print("hello")、exit()hello.py 并用 python3 hello.py 成功执行#!/usr/bin/env python3 和 chmod +x,能 ./hello.py 直接执行int 和 float 的区别,知道 / 和 // 的差异append()/pop()/len()/in