Python基本語法總結大全(含java、js對比)
專為有 JavaScript & Java 基礎的工程師《Python 基本語法快速上手指南》
Python 基本語法 · JS/Java 開發(fā)者快速上手指南
你會發(fā)現(xiàn):Python = 更少的代碼 + 更少的概念 + 更高的表達力。
1. Python 是動態(tài)類型語言(像 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. 基本數(shù)據(jù)類型
| Python | JS | Java |
|---|---|---|
| int | number | int |
| float | number | double |
| str | string | String |
| bool | boolean | boolean |
| list | Array | 數(shù)組/ArrayList |
| tuple | 類似 readonly array | 不可變數(shù)組 |
| 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. 循環(huán)
for 循環(huán)(更像 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. 函數(shù)定義
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 完全可以不要,: 是函數(shù)必須的
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)
關鍵點:
- 構造函數(shù)是
__init__ - 方法第一個參數(shù)必須是
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. 虛擬環(huán)境(推薦)
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()
繼續(xù)為你輸出 Python 快速上手指南(面向 JS & Java 工程師)。
你可以隨時說“繼續(xù)”往下擴展更多內(nèi)容。
10. 列表推導式(List Comprehension)??
這是 Python 最經(jīng)典、最強大的語法之一。
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)
創(chuàng)建:
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 的常用數(shù)據(jù)結構總結(對比 JS & Java)
| Python | JS | Java |
|---|---|---|
| list | Array | Array / ArrayList |
| tuple | 無等價(類似 readonly array) | 不可變數(shù)組 |
| 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(匿名函數(shù))
JS:
const add = (a, b) => a + b
Python:
add = lambda a, b: a + b
用在排序中非常常見:
arr.sort(key=lambda x: x["age"])
18. 裝飾器(類似 JS 的高階函數(shù) + 注解功能)
最基本的形式:
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. 虛擬環(huán)境(venv)—— 類似 JS 的 node_modules 隔離
創(chuàng)建:
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. 三引號字符串
三引號字符串放在函數(shù)第一行 = 函數(shù)注釋(用于文檔、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的區(qū)分
類型 不是必寫!
不區(qū)分!只有一個 Python。
但 Python 允許可選寫類型注解,因此:
- Python = JS(動態(tài)) + TS(可選標注)
- 寫不寫類型都能運行(不像 TS 那樣必須編譯檢查)
Python 官方把這套類型系統(tǒng)稱為 Type Hints(類型提示)。
Python 的類型注解是“提示”,不是“限制”
例如:
def add(a: int, b: int) -> int:
return a + b
print(add("hello", "world"))
照樣運行……輸出 "helloworld"
(因為 Python 不強制類型)
要強制檢查必須使用外部工具,比如:
- mypy
- pyright
- pylance(VSCode)
- PyCharm 自帶類型分析
什么時候推薦寫:
- 大型項目
- 團隊協(xié)作
- 需要 IDE 提示
- API 層
- 數(shù)據(jù)結構定義
總結
到此這篇關于Python基本語法(含java、js對比)的文章就介紹到這了,更多相關Python基本語法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python 基于wxpy庫實現(xiàn)微信添加好友功能(簡潔)
這篇文章主要介紹了Python 基于wxpy庫實現(xiàn)微信添加好友功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11
Django后端接收嵌套Json數(shù)據(jù)及解析詳解
這篇文章主要介紹了Django后端接收嵌套Json數(shù)據(jù)及解析詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07
Python實現(xiàn)C#代碼生成器應用服務于Unity示例解析
為了滿足項目需要,需要實現(xiàn)一個c#代碼生成器,為此設計了一個語法模板適用于Unity的代碼生成器。本次使用了Python的Template模板,使用python開發(fā)2021-10-10
python?爬取豆瓣電影短評并利用wordcloud生成詞云圖
這篇文章主要介紹了python?爬取豆瓣電影短評并利用wordcloud生成詞云圖,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06
python報錯TypeError: Input z must be
大家好,本篇文章主要講的是python報錯TypeError: Input z must be 2D, not 3D的解決方法,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下2021-12-12
Django REST框架創(chuàng)建一個簡單的Api實例講解
在本篇文章里小編給大家整理的是關于Django REST框架創(chuàng)建一個簡單的Api實例講解,有需要的朋友們可以學習下。2019-11-11

