diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a23d113 --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +# 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/ \ No newline at end of file diff --git a/README.md b/README.md index 0218d42..a53dbb8 100644 --- a/README.md +++ b/README.md @@ -1,215 +1,183 @@ -# FlyPython +# 🐍 FlyPython - LLM Agent & AI Development Hub -[python.flypython.com](https://python.flypython.com ) +[python.flypython.com](https://python.flypython.com) +## 🤖 LLM Agent Python - Core Focus -## Python News +### 🚀 Leading LLM Agent Frameworks -- [python official](https://www.python.org/) -- [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) +#### **OpenAI Agents SDK** +- [OpenAI Agents Python Documentation](https://openai.github.io/openai-agents-python/) - Official OpenAI Agents SDK for building AI agents +- [OpenAI Python Library](https://github.com/openai/openai-python) - Official OpenAI Python library +#### **CrewAI - Multi-Agent Systems** +- [CrewAI Framework](https://github.com/joaomdmoura/crewAI) - Cutting-edge framework for orchestrating role-playing, autonomous AI agents +- [CrewAI Documentation](https://docs.crewai.com/) - Official CrewAI documentation +- [CrewAI Examples](https://github.com/joaomdmoura/crewAI-examples) - Real-world CrewAI implementations +- [Learn Agentic AI with CrewAI](https://github.com/panaversity/learn-agentic-ai) - Comprehensive CrewAI learning resources +#### **LangGraph - Advanced Agent Workflows** +- [LangGraph](https://github.com/langchain-ai/langgraph) - Build stateful, multi-actor applications with LLMs +- [LangChain Agent Framework](https://python.langchain.com/docs/modules/agents/) - LangChain agents and tools -## Python for LLM +#### **AutoGen - Conversational AI Agents** +- [Microsoft AutoGen](https://github.com/microsoft/autogen) - Multi-agent conversation framework +#### **Dapr Agents** +- [Dapr Agents](https://github.com/dapr/python-sdk) - Stateful virtual actors for multi-agent workflows -## Python Books - -#### 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) - +### 🛠️ Latest Open Source LLM Agent Projects (2024) +#### **Minimal & Educational** +- [min-agent](https://github.com/zhouzaida/min-agent) - Minimal 200-line LLM Agent for understanding agent principles +- [LangChain ReAct Agent](https://github.com/botextractai/ai-langchain-react-agent) - ReAct agent with Python REPL and DuckDuckGo Search +- [OpenSource LLM Agents ReAct](https://github.com/Praveengovianalytics/llm_agents_open_source) - Open source LLM agents implementation - -## Course +#### **Production-Ready Frameworks** +- [SuperModels](https://github.com/JohannesVC/SuperModels) - Desktop app for running LLM agents with reflection mechanisms +- [AgentKit](https://github.com/japanvik/agentkit) - Simple framework for creating distributed LLM agents over networks +#### **Specialized Applications** +- [CrewAI Platform Examples](https://github.com/genaiworks/crewai) - Multi-agent systems with various real-world applications +- [CrewAI Lenox](https://github.com/samurayy99/crewai_lenox) - Advanced CrewAI implementations -#### Beginer - - [Python for Everybody](https://www.coursera.org/specializations/python) - - [Python 3 Programming](https://www.coursera.org/specializations/python-3-programming) +### 📚 LLM Agent Learning Resources +#### **Comprehensive Guides** +- [Building Multi-Agent AI Systems with CrewAI](https://medium.com/neural-engineer/understanding-crewai-building-multi-agent-ai-systems-15d0236d5cbf) +- [Agent Development Best Practices](https://cookbook.openai.com/examples/gpt4-1_prompting_guide) +#### **Courses & Tutorials** +- [Agentic AI Development Course](https://github.com/panaversity/learn-agentic-ai) - Complete course on Dapr Agentic Cloud Ascent (DACA) +- [Python for AI and Machine Learning](https://realpython.com/learning-paths/machine-learning-python/) +- [LangChain Agent Tutorials](https://python.langchain.com/docs/tutorials/) -## Data Science +## 📖 Python Learning & Development -#### matplotlib -- [AnatomyOfMatplotlib](https://github.com/matplotlib/AnatomyOfMatplotlib) +### 🎯 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) -## Github Top 45 +--- -
+### Python News -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) +- [Python Official](https://www.python.org/) +- [Medium Python](https://medium.com/tag/python) +- **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 -### Recommended Learning - -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] +#### **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) -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] +- **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) -
+- **Python Cookbook: Recipes for Mastering Python 3** + - [Amazon](https://www.amazon.co.uk/Python-Cookbook-David-Beazley/dp/1449340377) -### 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) +#### **Advanced Python (2023-2024)** +- **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) -### 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) +### Courses -
+#### **Beginner Courses** +- [Python for Everybody](https://www.coursera.org/specializations/python) +- [Python 3 Programming](https://www.coursera.org/specializations/python-3-programming) -### 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) +#### **Advanced Learning** +- [REST APIs with Flask and Python in 2024](https://www.coursera.org/learn/packt-rest-apis-with-flask-and-python-in-2024-i01az) - Professional Flask Development +- [Financial Analysis with YFinance](https://kritjunsree.medium.com/the-2024-guide-to-using-yfinance-with-python-for-effective-stock-analysis-668a4a26ee3a) - Modern Python Finance Tools -
+### Algorithms -### List -* [Python List Comprehension Tutorial](http://www.datacamp.com/community/tutorials/python-list-comprehension?utm_source=mybridge&utm_medium=email&utm_campaign=read_more) +- [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: Learn Python Algorithms](http://pygorithm.readthedocs.io/en/latest) - Fun way to learn algorithms -
+### Web Development -### 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) +#### **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 in 2024](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 & Code Quality](https://flake8.pycqa.org/en/latest/user/error-codes.html) -### 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) +#### **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) +- [Build a REST API with Django](https://scotch.io/tutorials/build-a-rest-api-with-django-a-test-driven-approach-part-1) -
+### Data Science -### 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) +#### **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) -### 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) +#### **Data Analysis Projects** +- [Exploring United States Policing Data](https://blog.patricktriest.com/police-data-python) +- [Analyzing 1000+ Greek Wines](https://tselai.com/greek-wines-analysis.html) +- [Generate FiveThirtyEight Graphs](https://www.dataquest.io/blog/making-538-plots) +- [Amazon Product Review Analysis](http://minimaxir.com/2017/01/amazon-spark) -
+### Automation & Bots -### 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) +#### **Web Scraping** +- [Web Scraping with Scrapy, SQL, Matplotlib](http://www.scrapingauthority.com/python-scrapy-mysql-and-matplotlib-to-gain-web-data-insights) +- [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) -### 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) +#### **Bots** +- [Reddit + Facebook Messenger Bot](https://pythontips.com/2017/04/13/making-a-reddit-facebook-messenger-bot) +- [Instagram Bot Success Story](https://medium.freecodecamp.com/my-open-source-instagram-bot-got-me-2-500-real-followers-for-5-in-server-costs-e40491358340) -
+#### **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) -### 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) +### Finance & Trading -
+- [2024 Guide to YFinance for Stock Analysis](https://kritjunsree.medium.com/the-2024-guide-to-using-yfinance-with-python-for-effective-stock-analysis-668a4a26ee3a) +- [Quantitative Trading with Python](https://medium.com/@deepml1818/quantitative-trading-with-python-analyzing-financial-data-7c829d447e0a) +- [Financial Data with Alpha Vantage 2024](https://medium.com/@datavisiondallas/navigating-financial-data-with-python-and-alpha-vantage-in-2024-a-beginners-guide-ca005bb1a6c2) +- [Stock Price Data - Python for Finance](https://www.youtube.com/watch?v=2BrpKpWwT2A) +- [Analyzing Cryptocurrency Markets](https://blog.patricktriest.com/analyzing-cryptocurrencies-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) -
### 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) - -
- -### 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) - -
- -### 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) - -
- -### 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) - -
- -### 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) - -
- -### 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) - -
- -### 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) - -
- -### 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) +- [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..c8c7945 100644 --- a/README_cn.md +++ b/README_cn.md @@ -1,841 +1,184 @@ -# 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 用于构建 AI 智能体 +- [OpenAI Python 库](https://github.com/openai/openai-python) - 官方 OpenAI Python 库 +#### **CrewAI - 多智能体系统** +- [CrewAI 框架](https://github.com/joaomdmoura/crewAI) - 用于协调角色扮演、自主 AI 智能体的尖端框架 +- [CrewAI 文档](https://docs.crewai.com/) - 官方 CrewAI 文档 +- [CrewAI 示例](https://github.com/joaomdmoura/crewAI-examples) - 真实世界 CrewAI 实现案例 +- [使用 CrewAI 学习 Agentic AI](https://github.com/panaversity/learn-agentic-ai) - 综合 CrewAI 学习资源 -## Python书籍列表 +#### **LangGraph - 高级智能体工作流** +- [LangGraph](https://github.com/langchain-ai/langgraph) - 使用 LLM 构建有状态的多角色应用程序 +- [LangChain Agent 框架](https://python.langchain.com/docs/modules/agents/) - LangChain 智能体和工具 -#### 初学者 -- 《Python编程从入门到实践》 -- 《Python编程快速上手-让繁琐工作自动化》 -- 《Python学习手册》 +#### **AutoGen - 对话式 AI 智能体** +- [Microsoft AutoGen](https://github.com/microsoft/autogen) - 多智能体对话框架 +#### **Dapr Agents** +- [Dapr Agents](https://github.com/dapr/python-sdk) - 用于多智能体工作流的有状态虚拟角色 -#### 中级 -- 《流畅的Python》 -- 《Python Ticks: A Buufect of Awesome》 -- 《Effective Python: 59 Specific ways to 》 -- +### 🛠️ 最新开源 LLM Agent 项目 (2024) -#### 实践 -- 《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 和 DuckDuckGo 搜索的 ReAct 智能体 +- [开源 LLM Agents ReAct](https://github.com/Praveengovianalytics/llm_agents_open_source) - 开源 LLM 智能体实现 +#### **生产就绪框架** +- [SuperModels](https://github.com/JohannesVC/SuperModels) - 具有反思机制的 LLM 智能体桌面应用 +- [AgentKit](https://github.com/japanvik/agentkit) - 用于创建网络分布式 LLM 智能体的简单框架 -#### 高级 -- 《Python Cookbook》 +#### **专业应用** +- [CrewAI 平台示例](https://github.com/genaiworks/crewai) - 多种真实世界应用的多智能体系统 +- [CrewAI Lenox](https://github.com/samurayy99/crewai_lenox) - 高级 CrewAI 实现 +### 📚 LLM Agent 学习资源 +#### **综合指南** +- [使用 CrewAI 构建多智能体 AI 系统](https://medium.com/neural-engineer/understanding-crewai-building-multi-agent-ai-systems-15d0236d5cbf) +- [智能体开发最佳实践](https://cookbook.openai.com/examples/gpt4-1_prompting_guide) -#### 参考资源 -- https://pythonbooks.org/ +#### **课程与教程** +- [Agentic AI 开发课程](https://github.com/panaversity/learn-agentic-ai) - Dapr Agentic Cloud Ascent (DACA) 完整课程 +- [Python 人工智能和机器学习](https://realpython.com/learning-paths/machine-learning-python/) +- [LangChain Agent 教程](https://python.langchain.com/docs/tutorials/) +## 📖 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 中的缓存:如何缓存函数的结果 +1. [Python 新闻](#python-新闻) +2. [Python 书籍](#python-书籍) +3. [课程](#课程) +4. [算法与数据结构](#算法) +5. [Web 开发](#web-开发) +6. [数据科学与分析](#数据科学) +7. [自动化与机器人](#自动化与机器人) +8. [金融与交易](#金融与交易) +9. [性能优化](#性能优化) +--- +### Python 新闻 -文章将介绍一种快捷的方法来加速 Python 记忆代码。你将看到何时以及如何运用 Python 记忆代码。记忆代码优化你的程序,在某些情况下会加速你的代码运行。 +- [Python 官方](https://www.python.org/) +- [Medium Python](https://medium.com/tag/python) +- **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) -https://dbader.org/blog/python-memoization +- **Python Cookbook:掌握 Python 3 的秘诀** + - [Amazon](https://www.amazon.co.uk/Python-Cookbook-David-Beazley/dp/1449340377) +#### **高级 Python (2023-2024)** +- **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 +#### **高级学习** +- [2024 年 Flask 和 Python REST API](https://www.coursera.org/learn/packt-rest-apis-with-flask-and-python-in-2024-i01az) - 专业 Flask 开发 +- [YFinance 金融分析](https://kritjunsree.medium.com/the-2024-guide-to-using-yfinance-with-python-for-effective-stock-analysis-668a4a26ee3a) - 现代 Python 金融工具 -链接: +### 算法 -https://medium.freecodecamp.org/the-hitchhikers-guide-to-machine-learning-algorithms-in-python-bfad66adb378 +- [Python 交互式编程面试挑战](https://github.com/donnemartin/interactive-coding-challenges) - 算法和数据结构 +- [算法:Python 中的最小示例](https://github.com/keon/algorithms) - 数据结构和算法 +- [Pygorithm:学习 Python 算法](http://pygorithm.readthedocs.io/en/latest) - 学习算法的有趣方式 +### Web 开发 +#### **FastAPI** +- [FastAPI 文档](https://fastapi.tiangolo.com/) - 现代、快速的 API 构建 Web 框架 +- [FastAPI 最佳实践](https://github.com/zhanymkanov/fastapi-best-practices) +#### **Flask** +- [2024 年 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 API](https://scotch.io/tutorials/build-a-rest-api-with-django-a-test-driven-approach-part-1) -44. 如何学习 Python 编程:6 位经验丰富的 Python 开发者分享了他们的观点 +### 数据科学 +#### **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) -对于当下热门的 Python 语言,有太多的教程、书籍、视频和博客文章资源,然而如此多的冗余资料,你该如何选择最佳的方式开始你的 Python 学习之旅呢?这篇文章列出了 6 位 Python 专家分享的学习经验,相信这对于迷茫中的你来说,将受益匪浅。 +#### **数据分析项目** +- [探索美国警务数据](https://blog.patricktriest.com/police-data-python) +- [分析 1000+ 希腊葡萄酒](https://tselai.com/greek-wines-analysis.html) +- [生成 FiveThirtyEight 图表](https://www.dataquest.io/blog/making-538-plots) +- [亚马逊产品评论分析](http://minimaxir.com/2017/01/amazon-spark) +### 自动化与机器人 +#### **网页抓取** +- [使用 Scrapy、SQL、Matplotlib 进行网页抓取](http://www.scrapingauthority.com/python-scrapy-mysql-and-matplotlib-to-gain-web-data-insights) +- [高级网页抓取:绕过 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) -https://coolpythoncodes.com/best-way-learn-python-programming +#### **机器人** +- [Reddit + Facebook Messenger 机器人](https://pythontips.com/2017/04/13/making-a-reddit-facebook-messenger-bot) +- [Instagram 机器人成功故事](https://medium.freecodecamp.com/my-open-source-instagram-bot-got-me-2-500-real-followers-for-5-in-server-costs-e40491358340) +#### **电子表格集成** +- [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) +### 金融与交易 -45. 如何用 Python 实现强大的数据分析 +- [2024 年 YFinance 股票分析指南](https://kritjunsree.medium.com/the-2024-guide-to-using-yfinance-with-python-for-effective-stock-analysis-668a4a26ee3a) +- [使用 Python 进行量化交易](https://medium.com/@deepml1818/quantitative-trading-with-python-analyzing-financial-data-7c829d447e0a) +- [2024 年 Alpha Vantage 金融数据](https://medium.com/@datavisiondallas/navigating-financial-data-with-python-and-alpha-vantage-in-2024-a-beginners-guide-ca005bb1a6c2) +- [股票价格数据 - Python 金融编程](https://www.youtube.com/watch?v=2BrpKpWwT2A) +- [分析加密货币市场](https://blog.patricktriest.com/analyzing-cryptocurrencies-python) -Python 是数据分析的最佳编程语言,这得益于它自带的依赖库。依赖库能够存储,操纵数据,并从数据中获得核心信息,因而在数据科学领域被广泛使用并展现出强大的功能。本文介绍了 Python 在数据科学领域的应用历史以及最新发展。 -作者:Jake VanderPlas +### 性能优化 -链接:https://www.youtube.com/watch?v=9by46AAqz70 +- [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/_config.yml b/_config.yml index 2f7efbe..bfc1f36 100644 --- a/_config.yml +++ b/_config.yml @@ -1 +1,134 @@ -theme: jekyll-theme-minimal \ No newline at end of file +# Site settings +title: FlyPython +subtitle: Python Learning Resource Hub +description: >- + FlyPython is a carefully curated collection of Python learning resources, + including tutorials, books, courses, tools, and best practices to support + Python learners from beginners to advanced developers. + +# 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-readme-index + - jekyll-relative-links + +# SEO settings +lang: en +logo: /assets/images/logo.png + +# Social links +github_username: flypython +twitter_username: flypython + +# Navigation +header_pages: + - README.md + - README_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: "README.md" + values: + layout: "default" + title: "FlyPython - Python Learning Resources" + description: "A curated collection of Python learning resources including tutorials, books, courses, and best practices for developers at all levels." + lang: "en" + permalink: "/" + - scope: + path: "README_cn.md" + values: + layout: "default" + title: "FlyPython - Python 学习资源" + description: "精心策划的 Python 学习资源集合,包含教程、书籍、课程和各级别开发者的最佳实践。" + lang: "zh-CN" + permalink: "/README_cn.html" + - 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 \ No newline at end of file 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..ef883a9 --- /dev/null +++ b/_includes/head-custom.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..3c0f24e --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,92 @@ + + + + + + + {% seo %} + + + + + + + + {% include head-custom.html %} + + + Skip to the content. + + + +
+ + {% if content contains '##' %} + + {% endif %} + + {{ content }} + + +
+ + + + + \ No newline at end of file diff --git a/assets/css/custom.css b/assets/css/custom.css new file mode 100644 index 0000000..c249f6e --- /dev/null +++ b/assets/css/custom.css @@ -0,0 +1,417 @@ +/* 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; +} + +/* 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; + } + + .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; + } +} \ No newline at end of file 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..627fcbc --- /dev/null +++ b/tools/check_links.py @@ -0,0 +1,189 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +FlyPython 链接检查工具 +用于定期检查README文件中所有外部链接的有效性 +""" + +import re +import requests +import time +import json +import os +from urllib.parse import urlparse +from concurrent.futures import ThreadPoolExecutor, as_completed + +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文件中提取所有外部链接""" + 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'])}") + + # 保存详细结果 + os.makedirs('../reports', exist_ok=True) + with open('../reports/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 = ['../README.md', '../README_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() \ No newline at end of file