diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..21b285d --- /dev/null +++ b/.gitignore @@ -0,0 +1,53 @@ +# Jekyll +_site/ +.sass-cache/ +.jekyll-cache/ +.jekyll-metadata + +# Ruby +Gemfile.lock +.bundle/ +vendor/ + +# OS +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# Editor +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Environment variables +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# Temporary files +tmp/ +temp/ +.tmp/ + +# Python +__pycache__/ +*.pyc + +# Generated reports +reports/ diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..bfb6cb6 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +python.flypython.com \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..0c8671c --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source "https://rubygems.org" + +gem "github-pages", group: :jekyll_plugins diff --git a/README.md b/README.md index cab84d9..98c47db 100644 --- a/README.md +++ b/README.md @@ -1,223 +1,175 @@ -# FlyPython +# 🐍 FlyPython - LLM Agent & AI Development Hub -http://flypython.com +[python.flypython.com](https://python.flypython.com) -[中文版](./README_cn.md) +## 🤖 LLM Agent Python - Core Focus +### 🚀 Leading LLM Agent Frameworks -## Python News +#### **OpenAI Agents SDK** +- [OpenAI Agents Python Documentation](https://openai.github.io/openai-agents-python/) - Official OpenAI Agents SDK for building Python agents +- [OpenAI Agents SDK Quickstart](https://openai.github.io/openai-agents-python/quickstart/) - Official quickstart guide +- [OpenAI Python Library](https://github.com/openai/openai-python) - Official OpenAI Python client +- [OpenAI Developer Resources](https://developers.openai.com/resources) - Official OpenAI development resource hub -- [python official](https://www.python.org/) -- [realpython](https://realpython.com) -- [medium](https://medium.com/tag/python) -- reddit - - [python](https://www.reddit.com/r/Python/) - - [learn python](https://www.reddit.com/r/learnpython/) - - [python tips](https://www.reddit.com/r/pythontips/) - - [python coding](https://www.reddit.com/r/pythoncoding) +#### **CrewAI - Multi-Agent Systems** +- [CrewAI Framework](https://github.com/joaomdmoura/crewAI) - Framework for orchestrating role-playing, autonomous AI agents +- [CrewAI Documentation](https://docs.crewai.com/) - Official CrewAI documentation +- [CrewAI Examples](https://github.com/crewAIInc/crewAI-examples) - Official example projects +- [Learn Agentic AI with CrewAI](https://github.com/panaversity/learn-agentic-ai) - Broad CrewAI learning resources +#### **LangGraph - Advanced Agent Workflows** +- [LangGraph](https://github.com/langchain-ai/langgraph) - Build stateful, multi-actor applications with LLMs +- [LangChain Agent Tutorials](https://python.langchain.com/docs/tutorials/) - Official agent and tool-calling tutorials -## Python Books +#### **AutoGen - Conversational AI Agents** +- [Microsoft AutoGen](https://github.com/microsoft/autogen) - Multi-agent conversation framework -#### Beginner -- 《Python Crash Course: A Hands-On, Project-Based Introduction to Programming for begainners》 - - ※※※※※ - - [Amazon](https://www.amazon.com/Python-Crash-Course-Hands-Project-Based/dp/1593276036) - -- 《STARTING OUT WITH PYTHON (4TH EDITION)》 - - ※※※※※ - - [Amazon](https://www.amazon.com/Starting-Out-Python-Tony-Gaddis/dp/0134444329) - -- 《Automate the Boring Stuff with Python: Practical Programming for Total Beginners 》 - - ※※※※※ - - [Amazon](https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994) - -- 《Python Cookbook: Recipes for Mastering Python 3 Paperback 》 - - ※※※※※ - - [Amazon](https://www.amazon.co.uk/Python-Cookbook-David-Beazley/dp/1449340377) - - -## YouTube - -- [Code with Harry](https://youtu.be/IMGzzK9Wn4w) -- [Code with Harry](https://www.youtube.com/playlist?list=PLu0W_9lII9agK8pojo23OHiNz3Jm6VQCH)(hindi) - - - -## Course - - -#### Beginer - - [Python for Everybody](https://www.coursera.org/specializations/python) - - [Python 3 Programming](https://www.coursera.org/specializations/python-3-programming) - - - -## Data Science - -#### matplotlib -- [AnatomyOfMatplotlib](https://github.com/matplotlib/AnatomyOfMatplotlib) +#### **Agent Development Infrastructure** +- [Anthropic Tool Use](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview) - Official guide to tool calling and agent workflows +- [Google Agent Development Kit](https://google.github.io/adk-docs/) - Official Google ADK docs +- [Model Context Protocol](https://modelcontextprotocol.io/introduction) - Open protocol for connecting models to tools and external context +- [PydanticAI](https://ai.pydantic.dev/) - Type-safe Python agent framework +- [Mastra Docs](https://mastra.ai/docs) - Agent framework with workflows, evals, and observability +- [Dapr Python SDK](https://github.com/dapr/python-sdk) - Building blocks for distributed and stateful Python services +### 🛠️ Open Source LLM Agent Projects -## Github Top 45 +#### **Minimal & Educational** +- [min-agent](https://github.com/zhouzaida/min-agent) - Minimal 200-line LLM agent for understanding core principles +- [LangChain ReAct Agent](https://github.com/botextractai/ai-langchain-react-agent) - ReAct agent with Python REPL and search +- [OpenSource LLM Agents ReAct](https://github.com/Praveengovianalytics/llm_agents_open_source) - Open-source ReAct implementation references -
+#### **Production-Ready Frameworks** +- [SuperModels](https://github.com/JohannesVC/SuperModels) - Desktop app for running LLM agents with reflection mechanisms +- [AgentKit](https://github.com/japanvik/agentkit) - Lightweight toolkit for distributed agents -1. [Algorithm](#algorithm) -1. [Guide](#guide) -1. [Structure](#structure) -1. [List](#list) -1. [Class](#class) -1. [Web Scraping](#web-scraping) -1. [Automation](#automation) -1. [Bot](#bot) -1. [Spreasheet](#spreasheet) -1. [Finance](#finance) -1. [Blockchain](#blockchain) -1. [Video Sythesizer](#video-sythesizer) -1. [Performance](#performance) -1. [Django](#django) -1. [Flake](#flake) -1. [NumPy](#numpy) -1. [NashPy](#nashpy) -1. [Markov Process](#markov-process) -1. [Data Analysis](#data-analysis) -1. [Get Started](#get-started) +### 📚 LLM Agent Learning Resources -
+#### **Comprehensive Guides** +- [OpenAI Cookbook](https://cookbook.openai.com/) - Official examples and production patterns +- [Prompt Optimization Guide](https://cookbook.openai.com/examples/optimize_prompts) - Practical prompt improvement workflow -### Recommended Learning +#### **Courses & Tutorials** +- [Agentic AI Development Course](https://github.com/panaversity/learn-agentic-ai) - Complete course repository for agentic AI +- [Python for AI and Machine Learning](https://realpython.com/learning-paths/machine-learning-python/) - Python AI learning path -A) REST APIs: [Build professional REST APIs with Python, Flask, Flask-RESTful, and Flask-SQLAlchemy.](http://bit.ly/2nktytU) [12,602 recommends, 4.6/5 stars] +## 📖 Python Learning & Development -B) Algorithmic Trading: [Python for Financial Analysis and Algorithmic Trading: Learn numpy , pandas , matplotlib , quantopian , finance.](http://bit.ly/2FfVW8G) [18,077 recommends, 4.6/5 stars] +### 🎯 Quick Navigation -
+1. [Python News](#python-news) +2. [Python Books](#python-books) +3. [Courses](#courses) +4. [Algorithms & Data Structures](#algorithms) +5. [Web Development](#web-development) +6. [Data Science & Analysis](#data-science) +7. [Automation & Bots](#automation--bots) +8. [Finance & Trading](#finance--trading) +9. [Performance Optimization](#performance) -### Algorithm -* [Interactive Python coding interview challenges (algorithms and data structures)](https://github.com/donnemartin/interactive-coding-challenges?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Algorithms: Minimal examples of data structures and algorithms in Python](https://github.com/keon/algorithms?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Pygorithm: A fun way to learn all major Python algorithms](http://pygorithm.readthedocs.io/en/latest?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +--- -
+### Python News -### Guide -* [wtfPython: A collection of interesting, subtle, and tricky Python snippets](https://github.com/satwikkansal/wtfPython?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +- [Python Official](https://www.python.org/) +- [Python Insider](https://blog.python.org/) +- **Reddit Communities:** + - [r/Python](https://www.reddit.com/r/Python/) + - [r/learnpython](https://www.reddit.com/r/learnpython/) + - [r/pythontips](https://www.reddit.com/r/pythontips/) + - [r/pythoncoding](https://www.reddit.com/r/pythoncoding) -
+### Python Books -### Structure -* [Alice in Python projectland: A comprehensive guide for how to go from Python scripts to a packaged project.](http://veekaybee.github.io/2017/09/26/python-packaging?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) - -
- -### List -* [Python List Comprehension Tutorial](http://www.datacamp.com/community/tutorials/python-list-comprehension?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) - -
- -### Class -* [Enriching Your Python Classes With Dunder (Magic, Special) Methods](https://dbader.org/blog/python-dunder-methods?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) - -
- -### Web Scraping -* [Web Scraping With Python: Scrapy, SQL, Matplotlib To Gain Web Data Insights](http://www.scrapingauthority.com/python-scrapy-mysql-and-matplotlib-to-gain-web-data-insights?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Advanced Web Scraping: Bypassing "403 Forbidden," captchas, and more](http://sangaline.com/post/advanced-web-scraping-tutorial?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Mastering Python Web Scraping: Get Your Data Back](https://hackernoon.com/mastering-python-web-scraping-get-your-data-back-e9a5cc653d88?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) - -
- -### Automation -* [Wedding at Scale: How I Used Twilio, Python and Google to Automate My Wedding](https://www.twilio.com/blog/2017/04/wedding-at-scale-how-i-used-twilio-python-and-google-to-automate-my-wedding.html?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [How I used Python to find interesting people to follow on Medium](https://medium.freecodecamp.org/how-i-used-python-to-find-interesting-people-on-medium-be9261b924b0?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) - -
- -### Bot -* [Making a Reddit + Facebook Messenger Bot](https://pythontips.com/2017/04/13/making-a-reddit-facebook-messenger-bot?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [My open source Instagram bot (written in Python) got me 2,500 real followers for $5 in server costs](https://medium.freecodecamp.com/my-open-source-instagram-bot-got-me-2-500-real-followers-for-5-in-server-costs-e40491358340?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) - -
- -### Spreasheet -* [Python Excel Tutorial: The Definitive Guide - Karlijn Willems](http://www.datacamp.com/community/tutorials/python-excel-tutorial?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Google Sheets and Python](https://www.youtube.com/watch?v=vISRn5qFrkM?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) - -
+#### **For Beginners** +- **Python Crash Course: A Hands-On, Project-Based Introduction to Programming** (3rd Edition, 2023) + - [Amazon](https://www.amazon.com/Python-Crash-Course-Hands-Project-Based/dp/1718502702) +- **Starting Out with Python** (4th Edition) + - [Amazon](https://www.amazon.com/Starting-Out-Python-Tony-Gaddis/dp/0134444329) +- **Automate the Boring Stuff with Python** (2nd Edition) + - [Free Online](https://automatetheboringstuff.com/) | [Amazon](https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593279922) -### Finance -* [Python For Finance: Algorithmic Trading](https://www.datacamp.com/community/tutorials/finance-python-trading?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Intro and Getting Stock Price Data - Python Programming for Finance p.1 - Sentdex](https://www.youtube.com/watch?v=2BrpKpWwT2A?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Analyzing Cryptocurrency Markets Using Python](https://blog.patricktriest.com/analyzing-cryptocurrencies-python?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +#### **Advanced Python** +- **Python Cookbook: Recipes for Mastering Python 3** + - [Amazon](https://www.amazon.co.uk/Python-Cookbook-David-Beazley/dp/1449340377) +- **Effective Python: 90 Specific Ways to Write Better Python** (2nd Edition) + - [Amazon](https://www.amazon.com/Effective-Python-Specific-Software-Development/dp/0134853989) +- **Clean Code in Python** + - [Amazon](https://www.amazon.com/Clean-Code-Python-maintainable-efficient/dp/1788835832) -
+### Courses -### Blockchain -* [Learn Blockchains by Building One](https://hackernoon.com/learn-blockchains-by-building-one-117428612f46?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Let’s Build the Tiniest Blockchain](https://medium.com/crypto-currently/lets-build-the-tiniest-blockchain-e70965a248b?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +#### **Beginner Courses** +- [Python for Everybody](https://www.coursera.org/specializations/python) +- [Python 3 Programming](https://www.coursera.org/specializations/python-3-programming) -
+#### **Advanced Learning** +- [REST APIs with Flask and Python](https://www.coursera.org/learn/packt-rest-apis-with-flask-and-python-in-2024-i01az) - Professional Flask development +- [yfinance Documentation](https://ranaroussi.github.io/yfinance/) - Official docs for Yahoo Finance data access in Python -### Video Synthesizer -* [Building a Video Synthesizer in Python](https://www.makeartwithpython.com/blog/video-synthesizer-in-python?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +### Algorithms -
+- [Interactive Python Coding Interview Challenges](https://github.com/donnemartin/interactive-coding-challenges) - Algorithms and data structures +- [Algorithms: Minimal Examples in Python](https://github.com/keon/algorithms) - Data structures and algorithms +- [Pygorithm](http://pygorithm.readthedocs.io/en/latest) - Fun way to learn algorithms -### Performance -* [A million requests per second with Python](https://medium.freecodecamp.com/million-requests-per-second-with-python-95c137af319?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Yes, Python is Slow, and I Don’t Care](https://hackernoon.com/yes-python-is-slow-and-i-dont-care-13763980b5a1?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Memoization in Python: How to Cache Function Results – Dan Bader](https://dbader.org/blog/python-memoization?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +### Web Development -
+#### **FastAPI** +- [FastAPI Documentation](https://fastapi.tiangolo.com/) - Modern, fast web framework for building APIs +- [FastAPI Best Practices](https://github.com/zhanymkanov/fastapi-best-practices) -### Django -* [A Complete Beginner's Guide to Django - Part 1](https://simpleisbetterthancomplex.com/series/2017/09/04/a-complete-beginners-guide-to-django-part-1.html?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Build a REST API with Django – A Test Driven Approach: Part 1](https://scotch.io/tutorials/build-a-rest-api-with-django-a-test-driven-approach-part-1?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +#### **Flask** +- [REST APIs with Flask and Python](https://www.coursera.org/learn/packt-rest-apis-with-flask-and-python-in-2024-i01az) +- [Developing RESTful APIs with Python and Flask](https://auth0.com/blog/developing-restful-apis-with-python-and-flask) +- [Flask and Code Quality](https://flake8.pycqa.org/en/latest/user/error-codes.html) -
+#### **Django** +- [Complete Beginner's Guide to Django - Part 1](https://simpleisbetterthancomplex.com/series/2017/09/04/a-complete-beginners-guide-to-django-part-1.html) +- [Django REST framework Quickstart](https://www.django-rest-framework.org/tutorial/quickstart/) -### Flake -* [The Big Ol' List of Rules](https://lintlyci.github.io/Flake8Rules?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Developing RESTful APIs with Python and Flask](https://auth0.com/blog/developing-restful-apis-with-python-and-flask?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +### Data Science -
+#### **NumPy** +- [From Python to NumPy](http://www.labri.fr/perso/nrougier/from-python-to-numpy/) +- [Exploring Line Lengths in Python Packages](http://jakevdp.github.io/blog/2017/11/09/exploring-line-lengths-in-python-packages) -### NumPy -* [From Python to Numpy](http://www.labri.fr/perso/nrougier/from-python-to-numpy/?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Exploring Line Lengths in Python Packages](http://jakevdp.github.io/blog/2017/11/09/exploring-line-lengths-in-python-packages?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +#### **Matplotlib** +- [Anatomy of Matplotlib](https://github.com/matplotlib/AnatomyOfMatplotlib) -
+#### **Data Analysis Projects** +- [Exploring United States Policing Data](https://blog.patricktriest.com/police-data-python) +- [Build a Gradebook With pandas](https://realpython.com/pandas-project-gradebook/) +- [FiveThirtyEight Style Sheet](https://matplotlib.org/stable/gallery/style_sheets/fivethirtyeight.html) +- [Amazon Product Review Analysis](http://minimaxir.com/2017/01/amazon-spark) -### NashPy -* [Nashpy - Tutorial: building and finding the equilibrium for a simple game](http://nashpy.readthedocs.io/en/latest/tutorial?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +### Automation & Bots -
+#### **Web Scraping** +- [Scrapy Tutorial](https://docs.scrapy.org/en/latest/intro/tutorial.html) +- [Advanced Web Scraping: Bypassing 403 Forbidden](http://sangaline.com/post/advanced-web-scraping-tutorial) +- [Mastering Python Web Scraping](https://hackernoon.com/mastering-python-web-scraping-get-your-data-back-e9a5cc653d88) -### Markov Process -* [Simulating Chutes & Ladders in Python](https://jakevdp.github.io/blog/2017/12/18/simulating-chutes-and-ladders?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +#### **Automation Projects** +- [Wedding Automation with Twilio and Python](https://www.twilio.com/blog/2017/04/wedding-at-scale-how-i-used-twilio-python-and-google-to-automate-my-wedding.html) +- [Finding Interesting People on Medium](https://medium.freecodecamp.org/how-i-used-python-to-find-interesting-people-on-medium-be9261b924b0) -
+#### **Spreadsheets Integration** +- [Python Excel Tutorial: The Definitive Guide](https://hackernoon.com/python-excel-tutorial-the-definitive-guide-934ee6dd15b0) +- [Data Analysis with Python in Excel](https://learning.anaconda.cloud/anaconda-certified-data-analysis-with-python-in-excel) +- [Google Sheets and Python](https://www.youtube.com/watch?v=vISRn5qFrkM) -### Data Analysis -* [Exploring United States Policing Data Using Python](https://blog.patricktriest.com/police-data-python?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Analyzing 1000+ Greek Wines With Python](https://tselai.com/greek-wines-analysis.html?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [How to Generate FiveThirtyEight Graphs in Python](https://www.dataquest.io/blog/making-538-plots?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Playing with 80 Million Amazon Product Review Ratings Using Apache Spark with Python](http://minimaxir.com/2017/01/amazon-spark?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Fast GeoSpatial Analysis in Python](https://matthewrocklin.com/blog//work/2017/09/21/accelerating-geopandas-1?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [Planet: Understanding the Amazon from Space, 1st Place Winner's Interview](http://blog.kaggle.com/2017/10/17/planet-understanding-the-amazon-from-space-1st-place-winners-interview?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +### Finance & Trading -
+- [yfinance Documentation](https://ranaroussi.github.io/yfinance/) +- [Research Backtesting Environments in Python with pandas](https://www.quantstart.com/articles/Research-Backtesting-Environments-in-Python-with-pandas/) +- [Alpha Vantage API Documentation](https://www.alphavantage.co/documentation/) +- [Stock Price Data - Python for Finance](https://www.youtube.com/watch?v=2BrpKpWwT2A) +- [Analyzing Cryptocurrency Markets](https://blog.patricktriest.com/analyzing-cryptocurrencies-python) -### Get Started -* [Learning Python: From Zero to Hero](https://medium.freecodecamp.org/learning-python-from-zero-to-hero-120ea540b567?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [A List of Non Trivial Python Exercises](https://www.ynonperek.com/2017/09/21/python-exercises?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [API Design: Think First, Code Later](https://www.ckl.io/blog/api-design-think-first-code-later?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [The Hitchhiker’s Guide to Machine Learning in Python](https://medium.freecodecamp.org/the-hitchhikers-guide-to-machine-learning-algorithms-in-python-bfad66adb378?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [How to learn Python programming: 6 experienced Python developers share their learning tips](https://coolpythoncodes.com/best-way-learn-python-programming?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) -* [ you can find out How Did Python Become A Data Science Powerhouse?](https://www.youtube.com/watch?v=9by46AAqz70?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +### Performance Optimization -### Net Practice (for Python) -"It's better to sweat now than to bleed later" -*[Practice Here on Hackerrank](https://www.hackerrank.com/domains/python) -*[Practice Here on Hackerearth](https://www.hackerearth.com/practice/python/getting-started/input-and-output/tutorial/) +- [Million Requests per Second with Python](https://medium.freecodecamp.com/million-requests-per-second-with-python-95c137af319) +- [Yes, Python is Slow, and I Don't Care](https://hackernoon.com/yes-python-is-slow-and-i-dont-care-13763980b5a1) +- [Memoization in Python](https://dbader.org/blog/python-memoization) diff --git a/README_cn.md b/README_cn.md index 2e93c10..8999cee 100644 --- a/README_cn.md +++ b/README_cn.md @@ -1,841 +1,175 @@ -# FlyPython +# 🐍 FlyPython - LLM Agent 与 AI 开发中心 -https://flypython.com +[python.flypython.com](https://python.flypython.com) +## 🤖 LLM Agent Python - 核心重点 -## Python新闻 +### 🚀 主流 LLM Agent 框架 -- [python官方](https://www.python.org/) -- [realpython](https://realpython.com) -- [medium](https://medium.com/tag/python) -- reddit - - [python](https://www.reddit.com/r/Python/) - - [learn python](https://www.reddit.com/r/learnpython/) - - [python tips](https://www.reddit.com/r/pythontips/) +#### **OpenAI Agents SDK** +- [OpenAI Agents Python 文档](https://openai.github.io/openai-agents-python/) - 官方 OpenAI Agents SDK,用于构建 Python 智能体 +- [OpenAI Agents SDK 快速开始](https://openai.github.io/openai-agents-python/quickstart/) - 官方快速上手指南 +- [OpenAI Python 库](https://github.com/openai/openai-python) - 官方 OpenAI Python 客户端 +- [OpenAI Developer Resources](https://developers.openai.com/resources) - OpenAI 官方开发资源入口 +#### **CrewAI - 多智能体系统** +- [CrewAI 框架](https://github.com/joaomdmoura/crewAI) - 用于协调角色扮演、自主 AI 智能体的框架 +- [CrewAI 文档](https://docs.crewai.com/) - 官方 CrewAI 文档 +- [CrewAI 示例](https://github.com/crewAIInc/crewAI-examples) - 官方示例项目 +- [使用 CrewAI 学习 Agentic AI](https://github.com/panaversity/learn-agentic-ai) - 综合学习资源 -## Python书籍列表 +#### **LangGraph - 高级智能体工作流** +- [LangGraph](https://github.com/langchain-ai/langgraph) - 使用 LLM 构建有状态的多角色应用 +- [LangChain Agent 教程](https://python.langchain.com/docs/tutorials/) - LangChain Agent 与工具调用教程 -#### 初学者 -- 《Python编程从入门到实践》 -- 《Python编程快速上手-让繁琐工作自动化》 -- 《Python学习手册》 +#### **AutoGen - 对话式 AI 智能体** +- [Microsoft AutoGen](https://github.com/microsoft/autogen) - 多智能体对话框架 +#### **Agent 开发基础设施** +- [Anthropic Tool Use](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview) - Claude 官方工具调用与 Agent 工作流指南 +- [Google Agent Development Kit](https://google.github.io/adk-docs/) - Google 官方 Agent Development Kit 文档 +- [Model Context Protocol](https://modelcontextprotocol.io/introduction) - 连接模型、工具与外部上下文的开放协议 +- [PydanticAI](https://ai.pydantic.dev/) - Pydantic 团队推出的类型安全 Python Agent 框架 +- [Mastra 文档](https://mastra.ai/docs) - 带工作流、评测和可观测性的 Agent 框架 +- [Dapr Python SDK](https://github.com/dapr/python-sdk) - 分布式与有状态 Python 服务组件 -#### 中级 -- 《流畅的Python》 -- 《Python Ticks: A Buufect of Awesome》 -- 《Effective Python: 59 Specific ways to 》 -- +### 🛠️ 开源 LLM Agent 项目 -#### 实践 -- 《Python编程》 -- 《Python极客项目编程》 -- 《Python核心编程》 +#### **极简与教育性项目** +- [min-agent](https://github.com/zhouzaida/min-agent) - 极简 200 行 LLM Agent,用于理解智能体原理 +- [LangChain ReAct Agent](https://github.com/botextractai/ai-langchain-react-agent) - 带 Python REPL 和搜索的 ReAct 智能体 +- [开源 LLM Agents ReAct](https://github.com/Praveengovianalytics/llm_agents_open_source) - 开源 ReAct 实现参考 +#### **生产就绪框架** +- [SuperModels](https://github.com/JohannesVC/SuperModels) - 具有反思机制的 LLM 智能体桌面应用 +- [AgentKit](https://github.com/japanvik/agentkit) - 面向分布式 Agent 的轻量工具集 -#### 高级 -- 《Python Cookbook》 +### 📚 LLM Agent 学习资源 +#### **综合指南** +- [OpenAI Cookbook](https://cookbook.openai.com/) - OpenAI 官方示例与实践集合 +- [Prompt 优化指南](https://cookbook.openai.com/examples/optimize_prompts) - OpenAI 的提示词优化工作流 +#### **课程与教程** +- [Agentic AI 开发课程](https://github.com/panaversity/learn-agentic-ai) - 完整的 Agentic AI 学习仓库 +- [Python 人工智能和机器学习](https://realpython.com/learning-paths/machine-learning-python/) - Python AI 学习路径 -#### 参考资源 -- https://pythonbooks.org/ +## 📖 Python 学习与开发 +### 🎯 快速导航 -## Python课程列表 - -#### 初学者 - -- [Python for Everybody](https://www.coursera.org/specializations/python) - - -## Github Top 45 - -REST API:使用 Python,Flask,Flask-RESTful 和 Flask-SQLAlchemy 构建专业的 REST API [12,602 个推荐,4.6 / 5 星] - -链接:https://www.udemy.com/rest-api-flask-and-python/ - - - -算法交易:用于财务分析和算法交易的 Python,主要学习包括 numpy,pandas,matplotlib,quantopian,finance [8,077 个推荐,4.6 / 5 星] - -链接:https://www.udemy.com/python-for-finance-and-trading-algorithms/ - - - -年度开源 Python 项目 [平均 4,078 星] - - -链接:https://medium.mybridge.co/30-amazing-python-projects-for-the-past-year-v-2018-9c310b04cdb3 - - - -Python 算法 - - -1. 回顾 Python 交互式编码中所要面对的挑战 (算法和数据结构) - - 本文对算法编码和数据结构中的问题提出了简单易懂又切实可行的方案。 - - 作者:Donne Martin;[github-11811 星] - - 链接:https://github.com/donnemartin/interactive-coding-challenges - - - -2. Python 中算法和数据结构的最小样本 - - 如何让 Python 中的数据结构和算法最小、最干净? - - 作者:keon;[github-10271 星] - - 链接:https://github.com/keon/algorithms - - - -3. 最重要的 Python 算法 --Pygorithm - - Pygorithm 是一个纯 Python 风格编写的模块,通过导入所需的算法,获得相应的代码、时间复杂性等。这是一个开始学习 Python 编程的好方法,能够帮助初学者学习并实现 Python 中所有算法。 - - 作者:Satwik Kansal;[github-3156 星] - - 链接:http://pygorithm.readthedocs.io/en/latest/ - - - -Python 综合指南 - -4. 一个有趣又鲜为人知的 Python 代码片段集合 —wtfPython - - 作者:Satwikkansal;[github-4,933 星] - - 链接:https://github.com/satwikkansal/wtfPython - - - - - -Python 的脚本结构 - -5. 一个关于如何从 Python 脚本到打包项目的标准化指南 - - 作者:Courtesy of Vicki - - 链接:http://veekaybee.github.io/2017/09/26/python-packaging - - - - - -Python 中的列表 - -6. Python 列表生成器的教程 - - 在这份教程中,你将能够学习到如何在 Python 中有效地使用列表生成器来创建列表,替换 (嵌套) for 循环以及使用 map (), filter (), reduce () 函数等。 - - 文章首先简单回顾了 Python 中列表的基本概念,并与 Python 中其他的数据结构进行比较。接着讲解了列表生成器的学习。文章还讲解了 Python 列表背后的数学知识,创建列表生成器的方法,以及如何在 for 循环或 lambda 隐函数中重写它们。 - - 作者:Karlijn Willems - - 链接:https://www.datacamp.com/community/tutorials/python-list-comprehension - - - -Python 中的类 - -7. 如何使用 Dunder (Magic、Special) 方法来丰富你的 Python 类 - - Dunker 是 Python 中的一种特殊方法,通过双下划线开始和结束的形式存在,例如__init__来丰富类的预定义方法。 - - 作者:Dan Bader - - 链接:https://dbader.org/blog/python-dunder-methods - - - - -Python 中的网页抓取 - -8. 如何使用 Python 中的 Scrapy、SQL 和 Matplotlib 等库进行网页抓取,并获取网页数据分析 - - 你可以通过这篇文章学习到网页爬取知识,并用于实践中。 - - 作者:ScrapingAuthority - - 链接:http://www.scrapingauthority.com/python-scrapy-mysql-and-matplotlib-to-gain-web-data-insights/ - - - -9. 高级的网页抓取教程:绕过 “403 禁止”,验证码等问题 - - 作者:Evan Sangaline - - 链接:http://sangaline.com/post/advanced-web-scraping-tutorial/ - - - -10. 掌握 Python 的网页抓取技巧来获取你所需要的数据 - - 作者:Lauren Glass 和 Hackernoon - - 链接:https://hackernoon.com/mastering-python-web-scraping-get-your-data-back-e9a5cc653d88 - - - - - -Python 中的自动化操作 - -11. 如何使用 Twilio、Python 和 Google 自动化婚礼的进程 - -作者:Thomas Curtis - -链接:https://www.twilio.com/blog/2017/04/wedding-at-scale-how-i-used-twilio-python-and-google-to-automate-my-wedding.html - - - -12. 如何用 Python 在 Medium 上找到有趣的人 - -作者:Radu Raicea 和 freeCodeCamp。 - -链接:https://medium.freecodecamp.org/how-i-used-python-to-find-interesting-people-on-medium-be9261b924b0 - - - - - -Python 中的 Bot -13. 制作 Reddit+Facebook 的信息箱 - -作者: - -Yasoob Khalid - -链接: - -https://pythontips.com/2017/04/13/making-a-reddit-facebook-messenger-bot/ - - - -14. 我在 Instagram 上用 Python 写的开源机器人 (让我拥有了 2500 个粉丝,所花的服务器成本只有 5 美元) - -作者: - -TimG - -链接: - -https://medium.freecodecamp.org/my-open-source-instagram-bot-got-me-2-500-real-followers-for-5-in-server-costs-e40491358340 - - - -Python 中的电子表格 - -15. 权威指南:Python 的 Excel 教程 - -通过这个教程,你可以了解如何使用 Python 读取和导入 Excel 文件,如何将数据写入这些电子表格。 - -作者: - -Karlijn Willems - -链接: - -https://www.datacamp.com/community/tutorials/python-excel-tutorial - - - -16. Python 和 Googgle 电子表格 - -作者: - -Brent Schooley - -链接: - -https://www.youtube.com/watch?v=vISRn5qFrkM - - - - - -Python 中的金融应用 - -17. Python 中的金融:算法交易 - -这是一份 Python 与金融应用的教程,在此你能学习到算法交易的基本知识及相关内容。 - -作者: - -Karlijn Willems - -链接: - -https://www.datacamp.com/community/tutorials/finance-python-trading - - - -18. Python 中的金融教程 — 股票价格及相关数据介绍 - -作者: - -Harrison Kinsley - -链接: - -https://www.youtube.com/watch?v=2BrpKpWwT2A - - - -19. 用 Python 分析加密货币市场 - - - -比特币市场是如何表现?加密货币价值突然出现高峰和低谷的原因是什么?不同 altcoins 市场是不可分割的或基本独立的?我们如何预测接下来会发生什么? - - - -这篇文章将简单地介绍如何使用 Python 来分析加密货币。文章通过一个简单的 Python 脚本来检索,分析和可视化不同加密货币上的数据。在这个过程中,文章还将揭示这些波动剧烈的市场行为以及一个有趣的演变趋势。 - - - -作者: - -Patrick Triest - -链接: - -https://blog.patricktriest.com/analyzing-cryptocurrencies-python/ - - - - - -Python 中的区块链 - - - -20. 学习并构建一个区块链 - - - -毫无疑问,区块链这项新颖的技术是计算的奇迹。区块链技术的出现引发了新的全数字货币,如比特币和莱特币,而这些货币并非由中央当局发行或管理。区块链也以 Ethereum 这样的技术形式革命化了分布式计算,并引入了智能合约等有趣的概念。 - - - -这篇文章将会帮助你学习并理解区块链的工作原理。通过这篇教程,你将学习到一个功能强大的区块链,并掌握它们的工作流程。 - - - -作者: - -Daniel van Flymen 和 Hackernoon - -链接: - -https://hackernoon.com/learn-blockchains-by-building-one-117428612f46 - - - -21. 如何构建一个最小的区块链 - - - -本文将用少于 50 行的代码 (Python2) 来创建一个最简单、最小的区块链。 - - - -作者: - -Gerald Nash - -链接: - -https://medium.com/crypto-currently/lets-build-the-tiniest-blockchain-e70965a248b - - - - - -Python 中的视频合成 - - - -22. 用 Python 构建一个视频合成器 - - - -视频合成器是利用音频输入来创建视觉信号的设备,自上世纪 60 年代以来,已有很长的历史。 - - - -这篇文章将用 Python 编写一个基本的视频合成器,并使用 aubio 进行 Onset 目标检测。 - - - -作者: - -Kirk Kaiser - -链接: - -https://www.makeartwithpython.com/blog/video-synthesizer-in-python/ - - - - - -Python 的性能 - - - -23. 用 Python 处理每秒 100 万个请求 - - - -用 Python 每秒能够达到 100 万个请求吗?为了节省服务器价格,最近很多公司正在从 Python 向其他编程语言中迁移。但实际并不需要。 - - - -Python 社区最近在性能提升方面做了很多工作。CPython 3.6 通过新的字典提高了整体解释器的性能。由于引入了更快的调用约定和字典查找缓存,CPython 3.7 将会更快。 - - - -对于数字处理任务,你可以使用 PyPy 进行代码编译。你还可以运行 NumPy 的测试套件,该测试套件现在已经改进了 Python 与 C 语言扩展的整体兼容性。在随后的更新版本中,PyPy 预计将与 Python 3.5 兼容。 - - - -作者: - -Paweł Piotr Przeradowski。 - -链接: - -https://medium.freecodecamp.org/million-requests-per-second-with-python-95c137af319 - - - -24. “Python 很慢,但我不在乎” - - - -这篇文章将介绍一些关于 Python 中 asyncio 的内容,并讨论有关 Python 速度的问题。 - - - -作者: - -Nick Humrich - -链接: - -https://hackernoon.com/yes-python-is-slow-and-i-dont-care-13763980b5a1 - - - -25. Python 中的缓存:如何缓存函数的结果 - - - -文章将介绍一种快捷的方法来加速 Python 记忆代码。你将看到何时以及如何运用 Python 记忆代码。记忆代码优化你的程序,在某些情况下会加速你的代码运行。 +1. [Python 新闻](#python-新闻) +2. [Python 书籍](#python-书籍) +3. [课程](#课程) +4. [算法与数据结构](#算法) +5. [Web 开发](#web-开发) +6. [数据科学与分析](#数据科学) +7. [自动化与机器人](#自动化与机器人) +8. [金融与交易](#金融与交易) +9. [性能优化](#性能优化) +--- +### Python 新闻 -链接: +- [Python 官方](https://www.python.org/) +- [Python Insider](https://blog.python.org/) +- **Reddit 社区:** + - [r/Python](https://www.reddit.com/r/Python/) + - [r/learnpython](https://www.reddit.com/r/learnpython/) + - [r/pythontips](https://www.reddit.com/r/pythontips/) + - [r/pythoncoding](https://www.reddit.com/r/pythoncoding) -https://dbader.org/blog/python-memoization +### Python 书籍 +#### **初学者** +- **Python 编程从入门到实践** (第 3 版, 2023) + - [Amazon](https://www.amazon.com/Python-Crash-Course-Hands-Project-Based/dp/1718502702) +- **Python 编程入门** (第 4 版) + - [Amazon](https://www.amazon.com/Starting-Out-Python-Tony-Gaddis/dp/0134444329) +- **Python 编程快速上手:让繁琐工作自动化** (第 2 版) + - [免费在线](https://automatetheboringstuff.com/) | [Amazon](https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593279922) +#### **高级 Python** +- **Python Cookbook:掌握 Python 3 的秘诀** + - [Amazon](https://www.amazon.co.uk/Python-Cookbook-David-Beazley/dp/1449340377) +- **Effective Python:编写高质量 Python 代码的 90 个建议** (第 2 版) + - [Amazon](https://www.amazon.com/Effective-Python-Specific-Software-Development/dp/0134853989) +- **Python 代码整洁之道** + - [Amazon](https://www.amazon.com/Clean-Code-Python-maintainable-efficient/dp/1788835832) +### 课程 +#### **初学者课程** +- [Python for Everybody](https://www.coursera.org/specializations/python) +- [Python 3 编程](https://www.coursera.org/specializations/python-3-programming) -Python 中的 Django 框架 - - - -26. 七步骤带你完整地学习 Django - - - -Django 是用 Python 编写的一个 Web 框架。这篇文章是介绍 Django 基础知识的系列教程,共分为七个部分,将分别从安装,准备开发环境,模型,视图,模板,URL 到更高级的主题(如迁移,测试和部署)出发,详细探讨所有的基本概念。 - - - -作者: - -Vitor Freitas - -链接: - -https://simpleisbetterthancomplex.com/series/2017/09/04/a-complete-beginners-guide-to-django-part-1.html - - - -27. 使用 Django 构建 REST API 的测试驱动方法:第一部分 - - - -这篇文章将介绍如何利用 Django 来构建一个 REST API 的测试驱动,并详细介绍了每个步骤。 - - - -作者: - -Jee Githinji Gikera 和 Scotch Development - -链接: - -https://scotch.io/tutorials/build-a-rest-api-with-django-a-test-driven-approach-part-1 - - - - - -Python 中的 Flake - - - -28. OI’List 规则 - - - -这篇博文中我们将介绍 Flake8(pyflakes,pycodestyle 和 mccabe)中的每个规则及相对应的示例。 - - - -链接: - -https://lintlyci.github.io/Flake8Rules/ - - - -29. 使用 Python 和 Flask 开发 RESTful API - - - -本文包括以下几部分:为什么用 Python;什么是 Flask;引导 Flask 应用程序 - -用 Flask 创建一个 RESTful 端点;用 Python 类映射模型;用 Marshmallow 进行序列化和反序列化对象;Dockerizing Flask 应用程序;用 Auth0 保护 Python API - - - -作者: - -Bruno Krebs - -链接: - -https://auth0.com/blog/developing-restful-apis-with-python-and-flask/ - - - - - -Python 中的 Numpy - - - -30. 从 Python 到 Numpy - - - -本文通过一种新颖的方式,向量化地集中讲解了如何从 Python 迁移到 Numpy 的学习。另外,本文还包括一些很少提到的使用技巧。 - - - -链接: - -http://www.labri.fr/perso/nrougier/from-python-to-numpy/ - - - -31. 探索 Python 每种工具包的行长度 - - - -本文探索了 Python 的流行包,如 NumPy,SciPy,Pandas,Scikit-Learn,Matplotlib,AstroPy 等。 - - - -作者: - -Jake VanderPlas - -链接: - -http://jakevdp.github.io/blog/2017/11/09/exploring-line-lengths-in-python-packages/ - - - - - -Python 中的 NashPy - - - -32. NashPy 教程 — 建立并找到一种简单的游戏平衡 - - - -博弈论是用来研究理性主体之间的战略互动:当双方试图采用对各自最有益的方式来完成某件事情时,对双方互动行为的研究。这篇文章将采用 Python 中的 NashPy 来研究这种双方博弈的互动行为。 - - - -链接: - -http://nashpy.readthedocs.io/en/latest/tutorial/ - - - - - -Python 中的马尔可夫过程 - - - -33. 用 Python 模拟 Chutes 和 Ladders - - - -这篇文章将通过 Chutes 和 Ladders 游戏的例子,建立模型并阐述马尔可夫过程的原理。整个分析过程附有 Python 源码,感兴趣的读者可以尝试一下。 - - - -作者: - -Jake VanderPlas - -链接: - -http://jakevdp.github.io/blog/2017/12/18/simulating-chutes-and-ladders/ - - - - - -Python 中的数据分析 - - - -34. 用 Python 分析美国联邦政治行为 - - - -科学,政治,个人意见和社会政策的交集可能呈现相当复杂的情况。思想和学科的交汇点通常充斥着有争议的观点和基于信仰但缺乏经验证据的议程。这时,数据科学在这方面就显得特别重要,因为它提供了一种以实际事实为基础的考察世界的方法,能够深入了解我们今天所面临的一些最重要的问题。 - - - -这篇文章我们将用 Python 来分析美国联邦政府的一些政治行为,深入了解政治背后所隐藏的故事。 - - - -作者: - -Patrick Triest - -链接: - -https://blog.patricktriest.com/police-data-python/ - - - -35. 用 Python 分析 1000 + 的希腊葡萄酒 - - - -作者: - -Florents Tselai - -链接: - -https://tselai.com/greek-wines-analysis.html - - - - - -36. 如何用 Python 生成 FiveThirtyEight 图 - - - -这篇文章将用 Python 的 matplotlib 和 pandas,来学习并查看 FiveThirtyEight(FTE)可视化的核心部分,并教会你使用 Python 来为自己的数据进行可视化。 - - - -作者: - -Josh Devlin - -链接: - -https://www.dataquest.io/blog/making-538-plots/、 - - - - - -37. 使用 Apache Spark 和 Python 为 8000 万 Amazon 产品进行评价打分 - - - -作者编写了一个简单的 Python 脚本,将亚马逊产品评论数据集中的每类评分数据进行整合,并对这些 Amazon 产品评论数据进行分析打分,以发现用户的喜好。 - - - -作者: - -Max Woolf - -链接: - -http://minimaxir.com/2017/01/amazon-spark/ - - - - - -38. 使用 Python 进行地理空间分析 - - - -作者: - -Matthew Rocklin - -链接: - -https://matthewrocklin.com/blog//work/2017/09/21/accelerating-geopandas-1 - - - - - -39. 星球:从太空中了解亚马逊,来自 Kaggle 头奖获奖者的采访 - - - -文章采访了 Kaggle 的 “星球:从太空中了解亚马逊” 竞赛的获奖者,内容包括他如何使用 11 个微调的卷积神经网络,标签关联的结构模型,以及如何避免过拟合现象等。 - - - -作者: - -Edwin Chen - -链接: - -http://blog.kaggle.com/2017/10/17/planet-understanding-the-amazon-from-space-1st-place-winners-interview/ - - - - - -Python 入门 - - - -40. 从零开始学习 Python - - - -Python 的创建者 Guido van Rossum 曾说过,“Python 是一个高级编程语言,其核心设计理念是让代码具有高度的可读性和简单的语法,程序员可以用几行代码表达自己的想法。” - - - -作者: - -TK - -链接: - -https://medium.freecodecamp.org/learning-python-from-zero-to-hero-120ea540b567 - - - - - -41. 重要的 Python 练习清单 - - - -这篇文章列出了一些重要的练习项目,包括 Python 语言本身和标准库的练习。文章中还有 Python 中不同主题模块的知识。 - - - -作者: - -Ynon Perek - -链接: - -https://www.ynonperek.com/2017/09/21/python-exercises/ - - - - - -42. API 的设计原则:先思考再编码 - - - -API 是定义应用程序接口的通用术语,换句话说,就是用户(人或机器)与程序的交互接口。在 Web 开发世界中,API 通常是一个网站,其中包含一系列端点,用于响应客户端请求和结构化文本数据。这篇文章将告诉你为什么以及如何设计一个正确的 API,如何将自己的思想植入到 API 的设计中来构建属于你自己的 API。 - - - -作者: - -Jonatas Baldin - -链接: - -https://www.ckl.io/blog/api-design-think-first-code-later - - - - - -43. Python 机器学习指南 - - - -本文将通过清晰地解释和有效的练习,来帮助你深度理解相关的机器学习算法。 - - - -作者: - -Conor Dewey - -链接: - -https://medium.freecodecamp.org/the-hitchhikers-guide-to-machine-learning-algorithms-in-python-bfad66adb378 - - +#### **高级学习** +- [Flask 和 Python REST API](https://www.coursera.org/learn/packt-rest-apis-with-flask-and-python-in-2024-i01az) - 专业 Flask 开发 +- [yfinance 文档](https://ranaroussi.github.io/yfinance/) - Yahoo Finance Python 数据接口官方文档 +### 算法 +- [Python 交互式编程面试挑战](https://github.com/donnemartin/interactive-coding-challenges) - 算法和数据结构 +- [算法:Python 中的最小示例](https://github.com/keon/algorithms) - 数据结构和算法 +- [Pygorithm](http://pygorithm.readthedocs.io/en/latest) - 学习算法的有趣方式 -44. 如何学习 Python 编程:6 位经验丰富的 Python 开发者分享了他们的观点 +### Web 开发 +#### **FastAPI** +- [FastAPI 文档](https://fastapi.tiangolo.com/) - 现代、快速的 API 构建 Web 框架 +- [FastAPI 最佳实践](https://github.com/zhanymkanov/fastapi-best-practices) +#### **Flask** +- [Flask 和 Python REST API](https://www.coursera.org/learn/packt-rest-apis-with-flask-and-python-in-2024-i01az) +- [使用 Python 和 Flask 开发 RESTful API](https://auth0.com/blog/developing-restful-apis-with-python-and-flask) +- [Flask 与代码质量](https://flake8.pycqa.org/en/latest/user/error-codes.html) -对于当下热门的 Python 语言,有太多的教程、书籍、视频和博客文章资源,然而如此多的冗余资料,你该如何选择最佳的方式开始你的 Python 学习之旅呢?这篇文章列出了 6 位 Python 专家分享的学习经验,相信这对于迷茫中的你来说,将受益匪浅。 +#### **Django** +- [Django 完全初学者指南 - 第 1 部分](https://simpleisbetterthancomplex.com/series/2017/09/04/a-complete-beginners-guide-to-django-part-1.html) +- [Django REST framework 快速入门](https://www.django-rest-framework.org/tutorial/quickstart/) +### 数据科学 +#### **NumPy** +- [从 Python 到 NumPy](http://www.labri.fr/perso/nrougier/from-python-to-numpy/) +- [探索 Python 包中的行长度](http://jakevdp.github.io/blog/2017/11/09/exploring-line-lengths-in-python-packages) -链接: +#### **Matplotlib** +- [Matplotlib 剖析](https://github.com/matplotlib/AnatomyOfMatplotlib) -https://coolpythoncodes.com/best-way-learn-python-programming +#### **数据分析项目** +- [探索美国警务数据](https://blog.patricktriest.com/police-data-python) +- [用 pandas 制作成绩册](https://realpython.com/pandas-project-gradebook/) +- [FiveThirtyEight 风格图表](https://matplotlib.org/stable/gallery/style_sheets/fivethirtyeight.html) +- [亚马逊产品评论分析](http://minimaxir.com/2017/01/amazon-spark) +### 自动化与机器人 +#### **网页抓取** +- [Scrapy 教程](https://docs.scrapy.org/en/latest/intro/tutorial.html) +- [高级网页抓取:绕过 403 禁止](http://sangaline.com/post/advanced-web-scraping-tutorial) +- [掌握 Python 网页抓取](https://hackernoon.com/mastering-python-web-scraping-get-your-data-back-e9a5cc653d88) -45. 如何用 Python 实现强大的数据分析 +#### **自动化项目** +- [使用 Twilio 和 Python 的婚礼自动化](https://www.twilio.com/blog/2017/04/wedding-at-scale-how-i-used-twilio-python-and-google-to-automate-my-wedding.html) +- [在 Medium 上寻找有趣的人](https://medium.freecodecamp.org/how-i-used-python-to-find-interesting-people-on-medium-be9261b924b0) -Python 是数据分析的最佳编程语言,这得益于它自带的依赖库。依赖库能够存储,操纵数据,并从数据中获得核心信息,因而在数据科学领域被广泛使用并展现出强大的功能。本文介绍了 Python 在数据科学领域的应用历史以及最新发展。 +#### **电子表格集成** +- [Python Excel 教程:权威指南](https://hackernoon.com/python-excel-tutorial-the-definitive-guide-934ee6dd15b0) +- [在 Excel 中使用 Python 进行数据分析](https://learning.anaconda.cloud/anaconda-certified-data-analysis-with-python-in-excel) +- [Google Sheets 和 Python](https://www.youtube.com/watch?v=vISRn5qFrkM) -作者:Jake VanderPlas +### 金融与交易 -链接:https://www.youtube.com/watch?v=9by46AAqz70 +- [yfinance 文档](https://ranaroussi.github.io/yfinance/) +- [使用 pandas 构建量化回测环境](https://www.quantstart.com/articles/Research-Backtesting-Environments-in-Python-with-pandas/) +- [Alpha Vantage API 文档](https://www.alphavantage.co/documentation/) +- [股票价格数据 - Python 金融编程](https://www.youtube.com/watch?v=2BrpKpWwT2A) +- [分析加密货币市场](https://blog.patricktriest.com/analyzing-cryptocurrencies-python) +### 性能优化 +- [Python 每秒百万请求](https://medium.freecodecamp.com/million-requests-per-second-with-python-95c137af319) +- [是的,Python 很慢,但我不在乎](https://hackernoon.com/yes-python-is-slow-and-i-dont-care-13763980b5a1) +- [Python 中的记忆化](https://dbader.org/blog/python-memoization) diff --git a/Youtube.txt b/Youtube.txt deleted file mode 100644 index 263d6d7..0000000 --- a/Youtube.txt +++ /dev/null @@ -1,2 +0,0 @@ -Learn Basics from youtube: -https://www.youtube.com/watch?v=_uQrJ0TkZlc&list=PLTjRvDozrdlxj5wgH4qkvwSOdHLOCx10f diff --git a/_config.yml b/_config.yml index 2f7efbe..c9c09ce 100644 --- a/_config.yml +++ b/_config.yml @@ -1 +1,116 @@ -theme: jekyll-theme-minimal \ No newline at end of file +# Site settings +title: FlyPython +subtitle: LLM Agent & AI Development Hub +description: >- + FlyPython is a curated bilingual hub for Python-based AI agent development, + applied engineering resources, and durable Python learning references. + +# Site information +url: "https://python.flypython.com" +baseurl: "" + +# Author information +author: + name: FlyPython + email: hello@flypython.com + github: flypython + twitter: flypython + +# Build settings +markdown: kramdown +highlighter: rouge +permalink: pretty + +# Theme configuration - Using GitHub Pages compatible theme +remote_theme: pages-themes/cayman@v0.2.0 + +# Plugins (GitHub Pages whitelist) +plugins: + - jekyll-feed + - jekyll-sitemap + - jekyll-seo-tag + - jekyll-optional-front-matter + - jekyll-relative-links + +# SEO settings +lang: en +logo: /assets/images/logo.svg + +# Social links +github_username: flypython +twitter_username: flypython + +# Navigation +header_pages: + - index.md + - zh-cn.md + +# GitHub Pages safe collections +collections: + tutorials: + output: true + permalink: /:collection/:name/ + resources: + output: true + permalink: /:collection/:name/ + +# Defaults +defaults: + - scope: + path: "" + type: "posts" + values: + layout: "post" + author: "FlyPython" + - scope: + path: "" + type: "pages" + values: + layout: "page" + - scope: + path: "" + type: "tutorials" + values: + layout: "tutorial" + - scope: + path: "" + type: "resources" + values: + layout: "resource" + +# Analytics (optional) +google_analytics: # UA-XXXXXXXX-X + +# Features +show_downloads: false +show_github_ribbon: false + +# Custom variables +github: + repository_url: https://github.com/flypython/python + repository_name: flypython/python + +# Content settings +kramdown: + input: GFM + hard_wrap: false + syntax_highlighter: rouge + syntax_highlighter_opts: + css_class: 'highlight' + span: + line_numbers: false + block: + line_numbers: true + +# Exclude from processing +exclude: + - Gemfile + - Gemfile.lock + - node_modules + - vendor/bundle/ + - vendor/cache/ + - vendor/gems/ + - vendor/ruby/ + - tools/ + - link_audit_report.md + - content_update_summary.md diff --git a/_data/navigation.yml b/_data/navigation.yml new file mode 100644 index 0000000..8555b4a --- /dev/null +++ b/_data/navigation.yml @@ -0,0 +1,46 @@ +main: + - title: "🏠 Home" + url: "/" + - title: "🇨🇳 中文版" + url: "/README_cn.html" + - title: "📚 Resources" + url: "#resources" + children: + - title: "📖 Tutorials" + url: "#tutorials" + - title: "📚 Books" + url: "#books" + - title: "🎓 Courses" + url: "#courses" + - title: "🛠️ Tools" + url: "#tools" + - title: "🤖 AI/ML" + url: "#ai-ml" + children: + - title: "🧠 LLM" + url: "#python-for-llm" + - title: "📊 Data Science" + url: "#data-science" + - title: "💹 Finance" + url: "#finance" + - title: "🔗 GitHub" + url: "https://github.com/flypython/python" + external: true + +footer: + - title: "Quick Links" + children: + - title: "Python.org" + url: "https://python.org" + - title: "PyPI" + url: "https://pypi.org" + - title: "Real Python" + url: "https://realpython.com" + - title: "Community" + children: + - title: "Reddit r/Python" + url: "https://reddit.com/r/Python" + - title: "Stack Overflow" + url: "https://stackoverflow.com/questions/tagged/python" + - title: "Python Discord" + url: "https://discord.gg/python" \ No newline at end of file diff --git a/_includes/head-custom.html b/_includes/head-custom.html new file mode 100644 index 0000000..812a44e --- /dev/null +++ b/_includes/head-custom.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..70765fe --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,93 @@ + + + + + + + {% seo %} + + + + + + + {% include head-custom.html %} + + + Skip to the content. + + + +
+ + {% if content contains '##' %} + + {% endif %} + + {{ content }} + + +
+ + + + + diff --git a/assets/css/custom.css b/assets/css/custom.css new file mode 100644 index 0000000..2ea291d --- /dev/null +++ b/assets/css/custom.css @@ -0,0 +1,521 @@ +/* Custom CSS for FlyPython */ + +/* Enhanced Typography */ +body { + font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + line-height: 1.8; +} + +/* Language Toggle Styles */ +.language-toggle { + margin: 1rem 0; + text-align: center; +} + +.btn-lang { + display: inline-block; + margin: 0 0.25rem; + padding: 0.5rem 1rem; + background-color: rgba(255, 255, 255, 0.2); + color: white; + text-decoration: none; + border-radius: 0.3rem; + border: 1px solid rgba(255, 255, 255, 0.3); + transition: all 0.2s ease; + /* Ensure buttons are not affected by generic .btn styles */ + transform: none !important; + box-shadow: none; +} + +.btn-lang:hover { + background-color: rgba(255, 255, 255, 0.3); + border-color: rgba(255, 255, 255, 0.5); + text-decoration: none; + color: white; + /* Disable transform effects on hover */ + transform: none !important; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); +} + +.btn-lang.active { + background-color: rgba(255, 255, 255, 0.9); + color: #333; + border-color: rgba(255, 255, 255, 0.9); + transform: none !important; +} + +/* Header Stats */ +.header-stats { + margin-top: 1rem; + padding: 0.75rem 1rem; + background: rgba(255, 255, 255, 0.1); + border-radius: 0.5rem; + backdrop-filter: blur(10px); + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.header-stats p { + margin: 0; + color: rgba(255, 255, 255, 0.9); + font-size: 0.9rem; + text-align: center; + font-weight: 300; +} + +.header-stats a { + color: rgba(255, 255, 255, 0.95); + text-decoration: none; + transition: all 0.2s ease; +} + +.header-stats a:hover { + color: white; + text-decoration: none; +} + +.header-stats img { + vertical-align: middle; + margin-left: 0.25rem; +} + +/* Enhanced Header */ +.page-header { + background: linear-gradient(135deg, #157878 0%, #2c3e50 100%); +} + +.project-name { + font-size: 3rem; + font-weight: 700; + text-shadow: 0 2px 4px rgba(0,0,0,0.3); +} + +.project-tagline { + font-size: 1.2rem; + font-weight: 300; + opacity: 0.9; +} + +/* Enhanced Buttons - Only affects GitHub buttons, not language toggle buttons */ +.btn:not(.btn-lang) { + transition: all 0.3s ease; +} + +.btn:not(.btn-lang):hover { + transform: translateY(-2px); + box-shadow: 0 4px 8px rgba(0,0,0,0.2); +} + +/* Table of Contents Styles */ +.toc { + background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); + border: 1px solid #dee2e6; + border-radius: 0.5rem; + padding: 1.5rem; + margin: 2rem 0; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); +} + +.toc h3 { + margin-top: 0; + color: #495057; + font-size: 1.2rem; + border-bottom: 2px solid #157878; + padding-bottom: 0.5rem; +} + +.toc ul { + list-style: none; + padding-left: 0; +} + +.toc li { + margin: 0.5rem 0; +} + +.toc a { + color: #157878; + text-decoration: none; + padding: 0.25rem 0.5rem; + border-radius: 0.25rem; + transition: all 0.2s ease; + display: block; +} + +.toc a:hover { + background-color: #157878; + color: white; + text-decoration: none; +} + +.toc-level-2 { + padding-left: 1rem; +} + +.toc-level-3 { + padding-left: 2rem; +} + +/* Enhanced Main Content */ +.main-content { + line-height: 1.8; +} + +.main-content h1, +.main-content h2, +.main-content h3, +.main-content h4 { + color: #2c3e50; + margin-top: 2rem; + margin-bottom: 1rem; +} + +.main-content h2 { + border-bottom: 2px solid #157878; + padding-bottom: 0.5rem; +} + +.main-content h3 { + border-left: 4px solid #157878; + padding-left: 1rem; +} + +/* Code block enhancements */ +.main-content pre { + background: #2d3748; + border-radius: 0.5rem; + padding: 1.5rem; + overflow-x: auto; +} + +.main-content code { + background: #f1f3f4; + color: #d73a49; + padding: 0.2rem 0.4rem; + border-radius: 0.25rem; + font-size: 0.9em; +} + +.main-content pre code { + background: none; + color: #e2e8f0; + padding: 0; +} + +/* Link styles */ +.main-content a { + color: #157878; + text-decoration: none; + border-bottom: 1px solid transparent; + transition: all 0.2s ease; +} + +.main-content a:hover { + border-bottom-color: #157878; + text-decoration: none; +} + +.section-lead { + margin: 1rem 0 1.75rem; + padding: 1rem 1.25rem; + background: linear-gradient(135deg, rgba(21, 120, 120, 0.12) 0%, rgba(44, 62, 80, 0.08) 100%); + border: 1px solid rgba(21, 120, 120, 0.18); + border-radius: 0.75rem; + color: #35505f; +} + +.hub-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 1rem; + margin: 1.5rem 0 2.5rem; +} + +.hub-card { + display: flex; + flex-direction: column; + gap: 0.55rem; + min-height: 180px; + padding: 1.2rem; + background: linear-gradient(180deg, #ffffff 0%, #f4fbfb 100%); + border: 1px solid rgba(21, 120, 120, 0.14); + border-radius: 1rem; + box-shadow: 0 18px 40px rgba(21, 120, 120, 0.08); + text-decoration: none !important; + color: #1f3440 !important; +} + +.hub-card:hover { + transform: translateY(-3px); + box-shadow: 0 24px 48px rgba(21, 120, 120, 0.14); + border-color: rgba(21, 120, 120, 0.28); +} + +.hub-card strong { + font-size: 1.1rem; + line-height: 1.3; +} + +.hub-card span:last-child { + font-size: 0.95rem; + line-height: 1.6; + color: #526674; +} + +.hub-card-eyebrow { + display: inline-flex; + align-self: flex-start; + padding: 0.2rem 0.55rem; + border-radius: 999px; + background: rgba(21, 120, 120, 0.1); + color: #157878; + font-size: 0.78rem; + font-weight: 700; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.resource-section { + margin: 1.4rem 0; + border: 1px solid rgba(21, 120, 120, 0.12); + border-radius: 0.9rem; + background: #ffffff; + box-shadow: 0 8px 28px rgba(44, 62, 80, 0.06); + overflow: hidden; +} + +.resource-section summary { + list-style: none; + cursor: pointer; + padding: 1rem 1.25rem; + background: linear-gradient(135deg, rgba(21, 120, 120, 0.1) 0%, rgba(44, 62, 80, 0.06) 100%); + color: #21404d; + font-size: 1.05rem; + font-weight: 700; +} + +.resource-section summary::-webkit-details-marker { + display: none; +} + +.resource-section[open] summary { + border-bottom: 1px solid rgba(21, 120, 120, 0.12); +} + +.resource-section > *:not(summary) { + margin-left: 1.25rem; + margin-right: 1.25rem; +} + +.resource-section > *:last-child { + margin-bottom: 1.25rem; +} + +/* Enhanced lists */ +.main-content ul li { + margin: 0.75rem 0; +} + +.main-content ul li a { + font-weight: 500; +} + +.main-content ul li a:hover { + background: rgba(21, 120, 120, 0.1); + padding: 0.2rem 0.4rem; + border-radius: 0.25rem; + margin: -0.2rem -0.4rem; +} + +/* Footer enhancements */ +.site-footer { + border-top: 2px solid #157878; + margin-top: 3rem; + padding-top: 2rem; +} + +.footer-stats { + text-align: center; + margin-top: 1rem; + padding: 1rem; + background: #f8f9fa; + border-radius: 0.5rem; +} + +.footer-stats p { + margin: 0; + color: #6c757d; +} + +/* Scroll to top button */ +.scroll-to-top { + position: fixed; + bottom: 2rem; + right: 2rem; + background: #157878; + color: white; + border: none; + border-radius: 50%; + width: 3rem; + height: 3rem; + cursor: pointer; + opacity: 0; + transition: opacity 0.3s ease; + z-index: 1000; + font-size: 1.2rem; +} + +.scroll-to-top.show { + opacity: 1; +} + +.scroll-to-top:hover { + background: #2c3e50; +} + +/* Resource cards */ +.resource-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; + margin: 2rem 0; +} + +.resource-card { + background: white; + border-radius: 0.5rem; + padding: 1.5rem; + box-shadow: 0 2px 10px rgba(0,0,0,0.1); + transition: all 0.3s ease; + border-left: 4px solid #157878; +} + +.resource-card:hover { + transform: translateY(-4px); + box-shadow: 0 8px 25px rgba(0,0,0,0.15); +} + +/* Category headers */ +.category-header { + display: flex; + align-items: center; + margin: 3rem 0 1.5rem 0; + padding: 1rem; + background: linear-gradient(135deg, rgba(21, 120, 120, 0.1) 0%, rgba(21, 120, 120, 0.05) 100%); + border-radius: 0.5rem; + border-left: 5px solid #157878; +} + +/* Statistics section */ +.stats-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 1rem; + margin: 2rem 0; +} + +.stat-card { + background: white; + padding: 1.5rem; + border-radius: 0.5rem; + text-align: center; + box-shadow: 0 2px 10px rgba(0,0,0,0.1); + border-top: 3px solid #157878; +} + +.stat-number { + font-size: 2.5rem; + font-weight: bold; + color: #157878; + display: block; +} + +.stat-label { + color: #666; + font-size: 0.9rem; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +/* Responsive improvements */ +@media screen and (max-width: 768px) { + .project-name { + font-size: 2rem; + } + + .project-tagline { + font-size: 1rem; + } + + .language-toggle { + text-align: center; + } + + .btn-lang { + display: block; + margin: 0.5rem auto; + max-width: 200px; + } + + .header-stats { + margin: 1rem 0; + padding: 0.5rem; + } + + .header-stats p { + font-size: 0.8rem; + line-height: 1.4; + } + + .toc { + margin: 1rem 0; + padding: 1rem; + } + + .hub-grid { + grid-template-columns: 1fr; + } + + .hub-card { + min-height: auto; + } + + .resource-grid { + grid-template-columns: 1fr; + } + + .stats-grid { + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + } +} + +/* Dark mode support */ +@media (prefers-color-scheme: dark) { + .resource-card { + background: #2d3748; + color: #e2e8f0; + } + + .stat-card { + background: #2d3748; + color: #e2e8f0; + } + + .footer-stats { + background: #2d3748; + color: #e2e8f0; + } +} + +/* Print styles */ +@media print { + .page-header, + .site-footer, + .scroll-to-top, + .toc { + display: none !important; + } + + .main-content { + max-width: none !important; + } +} diff --git a/assets/images/logo.svg b/assets/images/logo.svg new file mode 100644 index 0000000..b57e2a9 --- /dev/null +++ b/assets/images/logo.svg @@ -0,0 +1,18 @@ + + FlyPython logo + A teal badge with a python glyph and FlyPython wordmark. + + + + + + + + + + 🐍 + + + FlyPython + + diff --git a/assets/images/og-image.svg b/assets/images/og-image.svg new file mode 100644 index 0000000..d77a901 --- /dev/null +++ b/assets/images/og-image.svg @@ -0,0 +1,28 @@ + + FlyPython social card + FlyPython social preview card for Python learning resources and AI development. + + + + + + + + + + + FlyPython + + + Python Learning Resources + + + LLM Agents and AI Development + + + 🐍 + + + python.flypython.com + + diff --git a/index.md b/index.md new file mode 100644 index 0000000..bb05d86 --- /dev/null +++ b/index.md @@ -0,0 +1,182 @@ +--- +layout: default +title: FlyPython - Python Learning Resources +description: Curated links for Python, AI agent development, web engineering, and durable learning resources. +lang: en +permalink: / +--- +# 🐍 FlyPython - LLM Agent & AI Development Hub + +[python.flypython.com](https://python.flypython.com) + +## 🤖 LLM Agent Python - Core Focus + +### 🚀 Leading LLM Agent Frameworks + +#### **OpenAI Agents SDK** +- [OpenAI Agents Python Documentation](https://openai.github.io/openai-agents-python/) - Official OpenAI Agents SDK for building Python agents +- [OpenAI Agents SDK Quickstart](https://openai.github.io/openai-agents-python/quickstart/) - Official quickstart guide +- [OpenAI Python Library](https://github.com/openai/openai-python) - Official OpenAI Python client +- [OpenAI Developer Resources](https://developers.openai.com/resources) - Official OpenAI development resource hub + +#### **CrewAI - Multi-Agent Systems** +- [CrewAI Framework](https://github.com/joaomdmoura/crewAI) - Framework for orchestrating role-playing, autonomous AI agents +- [CrewAI Documentation](https://docs.crewai.com/) - Official CrewAI documentation +- [CrewAI Examples](https://github.com/crewAIInc/crewAI-examples) - Official example projects +- [Learn Agentic AI with CrewAI](https://github.com/panaversity/learn-agentic-ai) - Broad CrewAI learning resources + +#### **LangGraph - Advanced Agent Workflows** +- [LangGraph](https://github.com/langchain-ai/langgraph) - Build stateful, multi-actor applications with LLMs +- [LangChain Agent Tutorials](https://python.langchain.com/docs/tutorials/) - Official agent and tool-calling tutorials + +#### **AutoGen - Conversational AI Agents** +- [Microsoft AutoGen](https://github.com/microsoft/autogen) - Multi-agent conversation framework + +#### **Agent Development Infrastructure** +- [Anthropic Tool Use](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview) - Official guide to tool calling and agent workflows +- [Google Agent Development Kit](https://google.github.io/adk-docs/) - Official Google ADK docs +- [Model Context Protocol](https://modelcontextprotocol.io/introduction) - Open protocol for connecting models to tools and external context +- [PydanticAI](https://ai.pydantic.dev/) - Type-safe Python agent framework +- [Mastra Docs](https://mastra.ai/docs) - Agent framework with workflows, evals, and observability +- [Dapr Python SDK](https://github.com/dapr/python-sdk) - Building blocks for distributed and stateful Python services + +### 🛠️ Open Source LLM Agent Projects + +#### **Minimal & Educational** +- [min-agent](https://github.com/zhouzaida/min-agent) - Minimal 200-line LLM agent for understanding core principles +- [LangChain ReAct Agent](https://github.com/botextractai/ai-langchain-react-agent) - ReAct agent with Python REPL and search +- [OpenSource LLM Agents ReAct](https://github.com/Praveengovianalytics/llm_agents_open_source) - Open-source ReAct implementation references + +#### **Production-Ready Frameworks** +- [SuperModels](https://github.com/JohannesVC/SuperModels) - Desktop app for running LLM agents with reflection mechanisms +- [AgentKit](https://github.com/japanvik/agentkit) - Lightweight toolkit for distributed agents + +### 📚 LLM Agent Learning Resources + +#### **Comprehensive Guides** +- [OpenAI Cookbook](https://cookbook.openai.com/) - Official examples and production patterns +- [Prompt Optimization Guide](https://cookbook.openai.com/examples/optimize_prompts) - Practical prompt improvement workflow + +#### **Courses & Tutorials** +- [Agentic AI Development Course](https://github.com/panaversity/learn-agentic-ai) - Complete course repository for agentic AI +- [Python for AI and Machine Learning](https://realpython.com/learning-paths/machine-learning-python/) - Python AI learning path + +## 📖 Python Learning & Development + +### 🎯 Quick Navigation + +1. [Python News](#python-news) +2. [Python Books](#python-books) +3. [Courses](#courses) +4. [Algorithms & Data Structures](#algorithms) +5. [Web Development](#web-development) +6. [Data Science & Analysis](#data-science) +7. [Automation & Bots](#automation--bots) +8. [Finance & Trading](#finance--trading) +9. [Performance Optimization](#performance) + +--- + +### Python News + +- [Python Official](https://www.python.org/) +- [Python Insider](https://blog.python.org/) +- **Reddit Communities:** + - [r/Python](https://www.reddit.com/r/Python/) + - [r/learnpython](https://www.reddit.com/r/learnpython/) + - [r/pythontips](https://www.reddit.com/r/pythontips/) + - [r/pythoncoding](https://www.reddit.com/r/pythoncoding) + +### Python Books + +#### **For Beginners** +- **Python Crash Course: A Hands-On, Project-Based Introduction to Programming** (3rd Edition, 2023) + - [Amazon](https://www.amazon.com/Python-Crash-Course-Hands-Project-Based/dp/1718502702) +- **Starting Out with Python** (4th Edition) + - [Amazon](https://www.amazon.com/Starting-Out-Python-Tony-Gaddis/dp/0134444329) +- **Automate the Boring Stuff with Python** (2nd Edition) + - [Free Online](https://automatetheboringstuff.com/) | [Amazon](https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593279922) + +#### **Advanced Python** +- **Python Cookbook: Recipes for Mastering Python 3** + - [Amazon](https://www.amazon.co.uk/Python-Cookbook-David-Beazley/dp/1449340377) +- **Effective Python: 90 Specific Ways to Write Better Python** (2nd Edition) + - [Amazon](https://www.amazon.com/Effective-Python-Specific-Software-Development/dp/0134853989) +- **Clean Code in Python** + - [Amazon](https://www.amazon.com/Clean-Code-Python-maintainable-efficient/dp/1788835832) + +### Courses + +#### **Beginner Courses** +- [Python for Everybody](https://www.coursera.org/specializations/python) +- [Python 3 Programming](https://www.coursera.org/specializations/python-3-programming) + +#### **Advanced Learning** +- [REST APIs with Flask and Python](https://www.coursera.org/learn/packt-rest-apis-with-flask-and-python-in-2024-i01az) - Professional Flask development +- [yfinance Documentation](https://ranaroussi.github.io/yfinance/) - Official docs for Yahoo Finance data access in Python + +### Algorithms + +- [Interactive Python Coding Interview Challenges](https://github.com/donnemartin/interactive-coding-challenges) - Algorithms and data structures +- [Algorithms: Minimal Examples in Python](https://github.com/keon/algorithms) - Data structures and algorithms +- [Pygorithm](http://pygorithm.readthedocs.io/en/latest) - Fun way to learn algorithms + +### Web Development + +#### **FastAPI** +- [FastAPI Documentation](https://fastapi.tiangolo.com/) - Modern, fast web framework for building APIs +- [FastAPI Best Practices](https://github.com/zhanymkanov/fastapi-best-practices) + +#### **Flask** +- [REST APIs with Flask and Python](https://www.coursera.org/learn/packt-rest-apis-with-flask-and-python-in-2024-i01az) +- [Developing RESTful APIs with Python and Flask](https://auth0.com/blog/developing-restful-apis-with-python-and-flask) +- [Flask and Code Quality](https://flake8.pycqa.org/en/latest/user/error-codes.html) + +#### **Django** +- [Complete Beginner's Guide to Django - Part 1](https://simpleisbetterthancomplex.com/series/2017/09/04/a-complete-beginners-guide-to-django-part-1.html) +- [Django REST framework Quickstart](https://www.django-rest-framework.org/tutorial/quickstart/) + +### Data Science + +#### **NumPy** +- [From Python to NumPy](http://www.labri.fr/perso/nrougier/from-python-to-numpy/) +- [Exploring Line Lengths in Python Packages](http://jakevdp.github.io/blog/2017/11/09/exploring-line-lengths-in-python-packages) + +#### **Matplotlib** +- [Anatomy of Matplotlib](https://github.com/matplotlib/AnatomyOfMatplotlib) + +#### **Data Analysis Projects** +- [Exploring United States Policing Data](https://blog.patricktriest.com/police-data-python) +- [Build a Gradebook With pandas](https://realpython.com/pandas-project-gradebook/) +- [FiveThirtyEight Style Sheet](https://matplotlib.org/stable/gallery/style_sheets/fivethirtyeight.html) +- [Amazon Product Review Analysis](http://minimaxir.com/2017/01/amazon-spark) + +### Automation & Bots + +#### **Web Scraping** +- [Scrapy Tutorial](https://docs.scrapy.org/en/latest/intro/tutorial.html) +- [Advanced Web Scraping: Bypassing 403 Forbidden](http://sangaline.com/post/advanced-web-scraping-tutorial) +- [Mastering Python Web Scraping](https://hackernoon.com/mastering-python-web-scraping-get-your-data-back-e9a5cc653d88) + +#### **Automation Projects** +- [Wedding Automation with Twilio and Python](https://www.twilio.com/blog/2017/04/wedding-at-scale-how-i-used-twilio-python-and-google-to-automate-my-wedding.html) +- [Finding Interesting People on Medium](https://medium.freecodecamp.org/how-i-used-python-to-find-interesting-people-on-medium-be9261b924b0) + +#### **Spreadsheets Integration** +- [Python Excel Tutorial: The Definitive Guide](https://hackernoon.com/python-excel-tutorial-the-definitive-guide-934ee6dd15b0) +- [Data Analysis with Python in Excel](https://learning.anaconda.cloud/anaconda-certified-data-analysis-with-python-in-excel) +- [Google Sheets and Python](https://www.youtube.com/watch?v=vISRn5qFrkM) + +### Finance & Trading + +- [yfinance Documentation](https://ranaroussi.github.io/yfinance/) +- [Research Backtesting Environments in Python with pandas](https://www.quantstart.com/articles/Research-Backtesting-Environments-in-Python-with-pandas/) +- [Alpha Vantage API Documentation](https://www.alphavantage.co/documentation/) +- [Stock Price Data - Python for Finance](https://www.youtube.com/watch?v=2BrpKpWwT2A) +- [Analyzing Cryptocurrency Markets](https://blog.patricktriest.com/analyzing-cryptocurrencies-python) + +### Performance Optimization + +- [Million Requests per Second with Python](https://medium.freecodecamp.com/million-requests-per-second-with-python-95c137af319) +- [Yes, Python is Slow, and I Don't Care](https://hackernoon.com/yes-python-is-slow-and-i-dont-care-13763980b5a1) +- [Memoization in Python](https://dbader.org/blog/python-memoization) diff --git a/qrcode.jpg b/qrcode.jpg deleted file mode 100644 index e763a2e..0000000 Binary files a/qrcode.jpg and /dev/null differ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..f95e960 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +requests>=2.32,<3 diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..d909cd5 --- /dev/null +++ b/robots.txt @@ -0,0 +1,19 @@ +User-agent: * +Allow: / + +# Sitemap +Sitemap: https://python.flypython.com/sitemap.xml + +# Specific directives +Disallow: /tools/ +Disallow: /*.json$ +Disallow: /assets/css/ +Disallow: /assets/js/ + +# Allow all important pages +Allow: /README.md +Allow: /README_cn.html +Allow: / + +# Crawl delay (optional) +Crawl-delay: 1 \ No newline at end of file diff --git a/tools/check_links.py b/tools/check_links.py new file mode 100644 index 0000000..627ad06 --- /dev/null +++ b/tools/check_links.py @@ -0,0 +1,192 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +FlyPython 链接检查工具 +用于定期检查README文件中所有外部链接的有效性 +""" + +import re +import requests +import time +import json +from pathlib import Path +from concurrent.futures import ThreadPoolExecutor, as_completed + +ROOT_DIR = Path(__file__).resolve().parent.parent +REPORTS_DIR = ROOT_DIR / 'reports' + +class LinkChecker: + def __init__(self): + self.session = requests.Session() + self.session.headers.update({ + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' + }) + self.timeout = 10 + self.results = { + 'working': [], + 'broken': [], + 'redirect': [], + 'timeout': [], + 'unknown': [] + } + + def extract_links_from_file(self, filename): + """从markdown文件中提取所有外部链接""" + filename = str(filename) + try: + with open(filename, 'r', encoding='utf-8') as f: + content = f.read() + except Exception as e: + print(f"无法读取文件 {filename}: {e}") + return [] + + # 匹配markdown链接格式 [text](url) + markdown_links = re.findall(r'\[([^\]]*)\]\(([^)]+)\)', content) + + # 匹配纯链接格式 + url_pattern = r'https?://[^\s\])\}]+' + plain_links = re.findall(url_pattern, content) + + links = [] + + # 处理markdown链接 + for text, url in markdown_links: + if url.startswith('http'): + links.append({ + 'text': text, + 'url': url, + 'file': filename, + 'type': 'markdown' + }) + + # 处理纯链接 + for url in plain_links: + # 避免重复 + if not any(link['url'] == url for link in links): + links.append({ + 'text': url, + 'url': url, + 'file': filename, + 'type': 'plain' + }) + + return links + + def check_link(self, link): + """检查单个链接的状态""" + url = link['url'] + try: + response = self.session.head(url, timeout=self.timeout, allow_redirects=True) + status_code = response.status_code + + if status_code == 200: + link['status'] = 'working' + link['status_code'] = status_code + self.results['working'].append(link) + elif 300 <= status_code < 400: + link['status'] = 'redirect' + link['status_code'] = status_code + link['final_url'] = response.url + self.results['redirect'].append(link) + else: + # 尝试GET请求,有些网站不支持HEAD + try: + response = self.session.get(url, timeout=self.timeout) + if response.status_code == 200: + link['status'] = 'working' + link['status_code'] = response.status_code + self.results['working'].append(link) + else: + link['status'] = 'broken' + link['status_code'] = response.status_code + self.results['broken'].append(link) + except: + link['status'] = 'broken' + link['status_code'] = status_code + self.results['broken'].append(link) + + except requests.exceptions.Timeout: + link['status'] = 'timeout' + link['error'] = 'Request timeout' + self.results['timeout'].append(link) + + except requests.exceptions.RequestException as e: + link['status'] = 'unknown' + link['error'] = str(e) + self.results['unknown'].append(link) + + return link + + def check_all_links(self, links, max_workers=10): + """并发检查所有链接""" + print(f"开始检查 {len(links)} 个链接...") + + with ThreadPoolExecutor(max_workers=max_workers) as executor: + future_to_link = {executor.submit(self.check_link, link): link for link in links} + + for i, future in enumerate(as_completed(future_to_link), 1): + link = future_to_link[future] + try: + result = future.result() + status = result.get('status', 'unknown') + print(f"[{i}/{len(links)}] {status.upper()}: {result['url']}") + time.sleep(0.1) + except Exception as e: + print(f"检查链接时出错 {link['url']}: {e}") + + def generate_report(self): + """生成检查报告""" + total = sum(len(links) for links in self.results.values()) + + print("\n" + "="*60) + print("链接检查报告") + print("="*60) + print(f"总链接数: {total}") + print(f"正常链接: {len(self.results['working'])}") + print(f"重定向链接: {len(self.results['redirect'])}") + print(f"失效链接: {len(self.results['broken'])}") + print(f"超时链接: {len(self.results['timeout'])}") + print(f"未知状态: {len(self.results['unknown'])}") + + # 保存详细结果 + REPORTS_DIR.mkdir(exist_ok=True) + with open(REPORTS_DIR / 'link_check_results.json', 'w', encoding='utf-8') as f: + json.dump(self.results, f, ensure_ascii=False, indent=2) + + print(f"\n详细结果已保存到: reports/link_check_results.json") + +def main(): + checker = LinkChecker() + + # 从README文件提取链接 (相对于项目根目录) + files_to_check = [ROOT_DIR / 'index.md', ROOT_DIR / 'zh-cn.md'] + all_links = [] + + for filename in files_to_check: + print(f"从 {filename} 提取链接...") + links = checker.extract_links_from_file(filename) + all_links.extend(links) + print(f"找到 {len(links)} 个链接") + + if not all_links: + print("没有找到任何链接!") + return + + # 去重 + unique_links = [] + seen_urls = set() + for link in all_links: + if link['url'] not in seen_urls: + unique_links.append(link) + seen_urls.add(link['url']) + + print(f"去重后共 {len(unique_links)} 个唯一链接") + + # 检查链接 + checker.check_all_links(unique_links) + + # 生成报告 + checker.generate_report() + +if __name__ == '__main__': + main() diff --git a/zh-cn.md b/zh-cn.md new file mode 100644 index 0000000..d36a40c --- /dev/null +++ b/zh-cn.md @@ -0,0 +1,182 @@ +--- +layout: default +title: FlyPython - Python 学习资源 +description: 精选的 Python、Agent 开发与 AI 工程学习资源导航。 +lang: zh-CN +permalink: /README_cn.html +--- +# 🐍 FlyPython - LLM Agent 与 AI 开发中心 + +[python.flypython.com](https://python.flypython.com) + +## 🤖 LLM Agent Python - 核心重点 + +### 🚀 主流 LLM Agent 框架 + +#### **OpenAI Agents SDK** +- [OpenAI Agents Python 文档](https://openai.github.io/openai-agents-python/) - 官方 OpenAI Agents SDK,用于构建 Python 智能体 +- [OpenAI Agents SDK 快速开始](https://openai.github.io/openai-agents-python/quickstart/) - 官方快速上手指南 +- [OpenAI Python 库](https://github.com/openai/openai-python) - 官方 OpenAI Python 客户端 +- [OpenAI Developer Resources](https://developers.openai.com/resources) - OpenAI 官方开发资源入口 + +#### **CrewAI - 多智能体系统** +- [CrewAI 框架](https://github.com/joaomdmoura/crewAI) - 用于协调角色扮演、自主 AI 智能体的框架 +- [CrewAI 文档](https://docs.crewai.com/) - 官方 CrewAI 文档 +- [CrewAI 示例](https://github.com/crewAIInc/crewAI-examples) - 官方示例项目 +- [使用 CrewAI 学习 Agentic AI](https://github.com/panaversity/learn-agentic-ai) - 综合学习资源 + +#### **LangGraph - 高级智能体工作流** +- [LangGraph](https://github.com/langchain-ai/langgraph) - 使用 LLM 构建有状态的多角色应用 +- [LangChain Agent 教程](https://python.langchain.com/docs/tutorials/) - LangChain Agent 与工具调用教程 + +#### **AutoGen - 对话式 AI 智能体** +- [Microsoft AutoGen](https://github.com/microsoft/autogen) - 多智能体对话框架 + +#### **Agent 开发基础设施** +- [Anthropic Tool Use](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview) - Claude 官方工具调用与 Agent 工作流指南 +- [Google Agent Development Kit](https://google.github.io/adk-docs/) - Google 官方 Agent Development Kit 文档 +- [Model Context Protocol](https://modelcontextprotocol.io/introduction) - 连接模型、工具与外部上下文的开放协议 +- [PydanticAI](https://ai.pydantic.dev/) - Pydantic 团队推出的类型安全 Python Agent 框架 +- [Mastra 文档](https://mastra.ai/docs) - 带工作流、评测和可观测性的 Agent 框架 +- [Dapr Python SDK](https://github.com/dapr/python-sdk) - 分布式与有状态 Python 服务组件 + +### 🛠️ 开源 LLM Agent 项目 + +#### **极简与教育性项目** +- [min-agent](https://github.com/zhouzaida/min-agent) - 极简 200 行 LLM Agent,用于理解智能体原理 +- [LangChain ReAct Agent](https://github.com/botextractai/ai-langchain-react-agent) - 带 Python REPL 和 DuckDuckGo 搜索的 ReAct 智能体 +- [开源 LLM Agents ReAct](https://github.com/Praveengovianalytics/llm_agents_open_source) - 开源 ReAct 实现参考 + +#### **生产就绪框架** +- [SuperModels](https://github.com/JohannesVC/SuperModels) - 具有反思机制的 LLM 智能体桌面应用 +- [AgentKit](https://github.com/japanvik/agentkit) - 面向分布式 Agent 的轻量工具集 + +### 📚 LLM Agent 学习资源 + +#### **综合指南** +- [OpenAI Cookbook](https://cookbook.openai.com/) - OpenAI 官方示例与实践集合 +- [Prompt 优化指南](https://cookbook.openai.com/examples/optimize_prompts) - OpenAI 的提示词优化工作流 + +#### **课程与教程** +- [Agentic AI 开发课程](https://github.com/panaversity/learn-agentic-ai) - Dapr Agentic Cloud Ascent (DACA) 完整课程 +- [Python 人工智能和机器学习](https://realpython.com/learning-paths/machine-learning-python/) - Python AI 学习路径 + +## 📖 Python 学习与开发 + +### 🎯 快速导航 + +1. [Python 新闻](#python-新闻) +2. [Python 书籍](#python-书籍) +3. [课程](#课程) +4. [算法与数据结构](#算法) +5. [Web 开发](#web-开发) +6. [数据科学与分析](#数据科学) +7. [自动化与机器人](#自动化与机器人) +8. [金融与交易](#金融与交易) +9. [性能优化](#性能优化) + +--- + +### Python 新闻 + +- [Python 官方](https://www.python.org/) +- [Python Insider](https://blog.python.org/) +- **Reddit 社区:** + - [r/Python](https://www.reddit.com/r/Python/) + - [r/learnpython](https://www.reddit.com/r/learnpython/) + - [r/pythontips](https://www.reddit.com/r/pythontips/) + - [r/pythoncoding](https://www.reddit.com/r/pythoncoding) + +### Python 书籍 + +#### **初学者** +- **Python 编程从入门到实践** (第 3 版, 2023) + - [Amazon](https://www.amazon.com/Python-Crash-Course-Hands-Project-Based/dp/1718502702) +- **Python 编程入门** (第 4 版) + - [Amazon](https://www.amazon.com/Starting-Out-Python-Tony-Gaddis/dp/0134444329) +- **Python 编程快速上手:让繁琐工作自动化** (第 2 版) + - [免费在线](https://automatetheboringstuff.com/) | [Amazon](https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593279922) + +#### **高级 Python** +- **Python Cookbook:掌握 Python 3 的秘诀** + - [Amazon](https://www.amazon.co.uk/Python-Cookbook-David-Beazley/dp/1449340377) +- **Effective Python:编写高质量 Python 代码的 90 个建议** (第 2 版) + - [Amazon](https://www.amazon.com/Effective-Python-Specific-Software-Development/dp/0134853989) +- **Python 代码整洁之道** + - [Amazon](https://www.amazon.com/Clean-Code-Python-maintainable-efficient/dp/1788835832) + +### 课程 + +#### **初学者课程** +- [Python for Everybody](https://www.coursera.org/specializations/python) +- [Python 3 编程](https://www.coursera.org/specializations/python-3-programming) + +#### **高级学习** +- [Flask 和 Python REST API](https://www.coursera.org/learn/packt-rest-apis-with-flask-and-python-in-2024-i01az) - 专业 Flask 开发 +- [yfinance 文档](https://ranaroussi.github.io/yfinance/) - Yahoo Finance Python 数据接口官方文档 + +### 算法 + +- [Python 交互式编程面试挑战](https://github.com/donnemartin/interactive-coding-challenges) - 算法和数据结构 +- [算法:Python 中的最小示例](https://github.com/keon/algorithms) - 数据结构和算法 +- [Pygorithm](http://pygorithm.readthedocs.io/en/latest) - 学习算法的有趣方式 + +### Web 开发 + +#### **FastAPI** +- [FastAPI 文档](https://fastapi.tiangolo.com/) - 现代、快速的 API 构建 Web 框架 +- [FastAPI 最佳实践](https://github.com/zhanymkanov/fastapi-best-practices) + +#### **Flask** +- [Flask 和 Python REST API](https://www.coursera.org/learn/packt-rest-apis-with-flask-and-python-in-2024-i01az) +- [使用 Python 和 Flask 开发 RESTful API](https://auth0.com/blog/developing-restful-apis-with-python-and-flask) +- [Flask 与代码质量](https://flake8.pycqa.org/en/latest/user/error-codes.html) + +#### **Django** +- [Django 完全初学者指南 - 第 1 部分](https://simpleisbetterthancomplex.com/series/2017/09/04/a-complete-beginners-guide-to-django-part-1.html) +- [Django REST framework 快速入门](https://www.django-rest-framework.org/tutorial/quickstart/) + +### 数据科学 + +#### **NumPy** +- [从 Python 到 NumPy](http://www.labri.fr/perso/nrougier/from-python-to-numpy/) +- [探索 Python 包中的行长度](http://jakevdp.github.io/blog/2017/11/09/exploring-line-lengths-in-python-packages) + +#### **Matplotlib** +- [Matplotlib 剖析](https://github.com/matplotlib/AnatomyOfMatplotlib) + +#### **数据分析项目** +- [探索美国警务数据](https://blog.patricktriest.com/police-data-python) +- [用 pandas 制作成绩册](https://realpython.com/pandas-project-gradebook/) +- [FiveThirtyEight 风格图表](https://matplotlib.org/stable/gallery/style_sheets/fivethirtyeight.html) +- [亚马逊产品评论分析](http://minimaxir.com/2017/01/amazon-spark) + +### 自动化与机器人 + +#### **网页抓取** +- [Scrapy 教程](https://docs.scrapy.org/en/latest/intro/tutorial.html) +- [高级网页抓取:绕过 403 禁止](http://sangaline.com/post/advanced-web-scraping-tutorial) +- [掌握 Python 网页抓取](https://hackernoon.com/mastering-python-web-scraping-get-your-data-back-e9a5cc653d88) + +#### **自动化项目** +- [使用 Twilio 和 Python 的婚礼自动化](https://www.twilio.com/blog/2017/04/wedding-at-scale-how-i-used-twilio-python-and-google-to-automate-my-wedding.html) +- [在 Medium 上寻找有趣的人](https://medium.freecodecamp.org/how-i-used-python-to-find-interesting-people-on-medium-be9261b924b0) + +#### **电子表格集成** +- [Python Excel 教程:权威指南](https://hackernoon.com/python-excel-tutorial-the-definitive-guide-934ee6dd15b0) +- [在 Excel 中使用 Python 进行数据分析](https://learning.anaconda.cloud/anaconda-certified-data-analysis-with-python-in-excel) +- [Google Sheets 和 Python](https://www.youtube.com/watch?v=vISRn5qFrkM) + +### 金融与交易 + +- [yfinance 文档](https://ranaroussi.github.io/yfinance/) +- [使用 pandas 构建量化回测环境](https://www.quantstart.com/articles/Research-Backtesting-Environments-in-Python-with-pandas/) +- [Alpha Vantage API 文档](https://www.alphavantage.co/documentation/) +- [股票价格数据 - Python 金融编程](https://www.youtube.com/watch?v=2BrpKpWwT2A) +- [分析加密货币市场](https://blog.patricktriest.com/analyzing-cryptocurrencies-python) + +### 性能优化 + +- [Python 每秒百万请求](https://medium.freecodecamp.com/million-requests-per-second-with-python-95c137af319) +- [是的,Python 很慢,但我不在乎](https://hackernoon.com/yes-python-is-slow-and-i-dont-care-13763980b5a1) +- [Python 中的记忆化](https://dbader.org/blog/python-memoization)