专为有 javascript & java 基础的工程师《python 基本语法快速上手指南》
python 基本语法 · js/java 开发者快速上手指南
你会发现:python = 更少的代码 + 更少的概念 + 更高的表达力。
1. python 是动态类型语言(像 js,但比 js 更简单)
定义变量
a = 10 b = "hello" c = true
无需 let、const、var、int 之类的关键字。
变量类型由赋值决定。
2. 缩进就是作用域(没有花括号)
java/js:
if (x > 1) {
console.log('ok')
}
python:
if x > 1:
print("ok")
⚠️ 必须使用 4 个空格缩进(不能用 tab)
3. 基本数据类型
| python | js | java |
|---|---|---|
| int | number | int |
| float | number | double |
| str | string | string |
| bool | boolean | boolean |
| list | array | 数组/arraylist |
| tuple | 类似 readonly array | 不可变数组 |
| dict | object | map |
示例:
age = 28 # int
price = 3.14 # float
name = "tom" # str
is_ok = true # bool
arr = [1, 2, 3] # list
t = (1, 2) # tuple
user = {"name": "tom"} # dict
4. 条件语句(更自然)
if score > 90:
print("a")
elif score > 60:
print("b")
else:
print("c")
注意:elif = else if
5. 循环
for 循环(更像 java 的 foreach)
for item in [1, 2, 3]:
print(item)
range
for i in range(5): # 0,1,2,3,4
print(i)
for i in range(1, 5): # 1,2,3,4
print(i)
6. 函数定义
java/js:
function add(a, b) {
return a + b
}
python:
def add(a, b):
return a + b
def add(a, b) -> str:
return a + b
-> str 完全可以不要,: 是函数必须的
7. 类与对象
java:
class user {
string name;
user(string name) { this.name = name; }
}
python(更简洁):
class user:
def __init__(self, name):
self.name = name
u = user("tom")
print(u.name)
关键点:
- 构造函数是
__init__ - 方法第一个参数必须是
self
8. 字符串(功能超强)
f-string(python 最好用的语法)
name = "tom"
age = 18
print(f"my name is {name}, age {age}")
9. 列表(list)的常用操作
arr = [1, 2, 3] arr.append(4) arr.insert(0, 100) arr.remove(2) print(len(arr))
列表推导式(神器 🔥)
squares = [x*x for x in range(5)] print(squares) # [0,1,4,9,16]
10. 字典(dict)
user = {
"name": "tom",
"age": 20
}
print(user["name"])
user["age"] = 30
for key, val in user.items():
print(key, val)
11. 异常处理(与 java 类似)
try:
x = 10 / 0
except zerodivisionerror:
print("不能除以 0")
finally:
print("done")
12. 文件操作(非常简单)
with open("test.txt", "r") as f:
content = f.read()
with open("a.txt", "w") as f:
f.write("hello")
13. 模块与导入
java:
import java.util.list;
js:
import fs from 'fs';
python:
import math from math import sqrt
14. python 对象打印超级方便
print(user)
你不需要写 json.stringify,也不需要重写 tostring。
15. 虚拟环境(推荐)
python -m venv venv source venv/bin/activate # mac/linux venv\scripts\activate # windows
16. pip 安装库
pip install requests
示例:
import requests
res = requests.get("https://api.github.com")
print(res.json())
17. pythonic 语法总结(从 js/java 转过来最常用)
✓ 多重赋值
a, b = 1, 2
✓ 三元表达式
msg = "ok" if x > 1 else "fail"
✓ enumerate
for index, item in enumerate(arr):
print(index, item)
✓ 交换变量
a, b = b, a
✓ 一行读取文件
data = open("a.txt").read()
继续为你输出 python 快速上手指南(面向 js & java 工程师)。
你可以随时说“继续”往下扩展更多内容。
10. 列表推导式(list comprehension)🔥
这是 python 最经典、最强大的语法之一。
js/java 写法:
const arr = [];
for(let i=0; i<5; i++){
arr.push(i * i);
}
python 一行:
squares = [x * x for x in range(5)]
带条件:
evens = [x for x in range(10) if x % 2 == 0]
11. 字典(dict)常用操作(相当于 js object / java hashmap)
创建:
user = {"name": "tom", "age": 18}
访问:
print(user["name"])
print(user.get("age"))
修改:
user["age"] = 20
遍历:
for key, value in user.items():
print(key, value)
12. 异常处理(类似 java,更好用)
try:
1 / 0
except zerodivisionerror as e:
print("error:", e)
finally:
print("done")
13. 文件读写(非常简单)
写文件:
with open("a.txt", "w", encoding="utf-8") as f:
f.write("hello")
读文件:
with open("a.txt", "r", encoding="utf-8") as f:
content = f.read()
with 会自动 close 文件。
14. 模块与导入(import)
相当于 js 的 import,java 的 import。
import math print(math.sqrt(16))
from 写法:
from math import sqrt print(sqrt(16))
导入别名:
import numpy as np
15. python 的常用数据结构总结(对比 js & java)
| python | js | java |
|---|---|---|
| list | array | array / arraylist |
| tuple | 无等价(类似 readonly array) | 不可变数组 |
| dict | object / map | hashmap |
| set | set | hashset |
16. python 的强大语法糖
✦ 解构赋值(js 也有,但 python 更强)
a, b = 1, 2
交换变量(无需临时变量):
a, b = b, a
解构列表:
x, y, z = [10, 20, 30]
17. lambda(匿名函数)
js:
const add = (a, b) => a + b
python:
add = lambda a, b: a + b
用在排序中非常常见:
arr.sort(key=lambda x: x["age"])
18. 装饰器(类似 js 的高阶函数 + 注解功能)
最基本的形式:
def log(fn):
def wrapper(*args, **kwargs):
print("call", fn.__name__)
return fn(*args, **kwargs)
return wrapper
@log
def hello():
print("hi")
19. python 的包管理(pip)
安装包:
pip install requests
升级包:
pip install -u requests
20. 虚拟环境(venv)—— 类似 js 的 node_modules 隔离
创建:
python -m venv venv
激活(mac/linux):
source venv/bin/activate
激活(windows):
venv\scripts\activate
退出:
deactivate
21. python 异步(async/await)
几乎与 js 一样。
import asyncio
async def hello():
print("hello")
await asyncio.sleep(1)
print("world")
asyncio.run(hello())
22. f-string(python 的模板字符串)
return f"it's always sunny in {city}!"
f-string 是 python 拼接字符串最常用的方式。
等价于 js 的模板字符串:
return `it's always sunny in ${city}!`
23. 三引号字符串
三引号字符串放在函数第一行 = 函数注释(用于文档、ide 提示、help())。
def get_weather(city: str) -> str:
"""get weather for a given city."""
return f"it's always sunny in {city}!"
相当于 java 的:
/** * get weather for a given city. */
24. 类型是否必须写,是否有类似js和ts的区分
类型 不是必写!
不区分!只有一个 python。
但 python 允许可选写类型注解,因此:
- python = js(动态) + ts(可选标注)
- 写不写类型都能运行(不像 ts 那样必须编译检查)
python 官方把这套类型系统称为 type hints(类型提示)。
python 的类型注解是“提示”,不是“限制”
例如:
def add(a: int, b: int) -> int:
return a + b
print(add("hello", "world"))
照样运行……输出 "helloworld"
(因为 python 不强制类型)
要强制检查必须使用外部工具,比如:
- mypy
- pyright
- pylance(vscode)
- pycharm 自带类型分析
什么时候推荐写:
- 大型项目
- 团队协作
- 需要 ide 提示
- api 层
- 数据结构定义
总结
到此这篇关于python基本语法(含java、js对比)的文章就介绍到这了,更多相关python基本语法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论