An open API service indexing awesome lists of open source software.

https://github.com/scthornton/learn-python-from-scratch

Simple Jupyter Notebook geared towards those with no prior programming experience.
https://github.com/scthornton/learn-python-from-scratch

beginners education jupyter-notebook python python-from-scratch

Last synced: about 2 months ago
JSON representation

Simple Jupyter Notebook geared towards those with no prior programming experience.

Awesome Lists containing this project

README

          

# Python from Scratch: A Beginner's Tutorial

A comprehensive, interactive Jupyter notebook tutorial designed to teach Python programming to complete beginners with zero programming experience.

## Who This Is For

- **Complete beginners** who have never written code before
- **Non-developers** who want to learn programming fundamentals
- **Self-learners** who prefer hands-on, interactive tutorials
- **Anyone** who wants a solid foundation in Python basics

## What You'll Learn

This tutorial covers all Python fundamentals through 16 comprehensive sections:

### Core Concepts
- **Variables & Data Types** - Strings, integers, floats, booleans
- **Math Operations** - All arithmetic operators and practical calculations
- **Print Statements** - Displaying output and debugging

### Data Structures
- **Lists** - Creating, accessing, and manipulating ordered collections
- **Dictionaries** - Working with key-value pairs
- **Strings** - Text manipulation, formatting, and methods

### Control Flow
- **Conditionals** - if/elif/else statements and comparison operators
- **Loops** - for loops, while loops, and iteration
- **Functions** - Creating reusable code blocks

### Advanced Topics
- **File Operations** - Reading and writing files
- **JSON Handling** - Working with structured data
- **Error Handling** - try/except blocks for graceful error management
- **List Comprehensions** - Elegant, Pythonic list creation
- **API Requests** - Making HTTP requests with the requests library
- **Object-Oriented Programming** - Building a complete TodoList application

## How to Use This Tutorial

### Prerequisites
- Python 3.7+ installed on your computer
- Jupyter Notebook or JupyterLab installed

### Installation

1. **Clone this repository:**
```bash
git clone https://github.com/scthornton/learn-python-from-scratch.git
cd learn-python-from-scratch
```

2. **Install Jupyter (if not already installed):**
```bash
pip install jupyter
```

3. **Install required dependencies:**
```bash
pip install requests
```

### Running the Tutorial

1. **Start Jupyter Notebook:**
```bash
jupyter notebook
```

2. **Open the tutorial:**
- Navigate to `python_basics_tutorial.ipynb` in the Jupyter interface
- Click to open the notebook

3. **Work through the cells:**
- Read each markdown cell for explanations
- Run each code cell by clicking it and pressing **Shift + Enter**
- **Type the code yourself** - don't copy/paste! This helps you learn
- Complete the "Try it yourself" exercises throughout

### Learning Path

The tutorial is designed to be completed in order:

1. Start at the beginning - each section builds on previous concepts
2. Run every code cell to see outputs
3. Experiment with the code - modify values and see what happens
4. Complete all "Try it yourself" exercises
5. Build the final TodoList project to tie everything together

## Tutorial Structure

```
Section 1-3: Fundamentals (print, variables, data types)
Section 4-6: Data structures (math, lists, dictionaries)
Section 7-9: Control flow (conditionals, loops, functions)
Section 10-13: Working with data (strings, files, JSON, errors)
Section 14-15: Advanced techniques (comprehensions, APIs)
Section 16: Capstone project (Complete TodoList application)
```

## Project Features

- **Interactive learning** - Run code directly in your browser
- **Practical examples** - Real-world applications like tip calculators and file handling
- **Progressive difficulty** - Gradually introduces complexity
- **Hands-on exercises** - Practice problems throughout
- **Complete project** - Build a functional TodoList application
- **Self-contained** - Everything you need in one notebook

## Next Steps After Completion

Once you finish this tutorial, you'll be ready to:

1. **Build your own projects** - Apply these fundamentals to solve real problems
2. **Learn specialized libraries:**
- **pandas** - Data analysis and manipulation
- **matplotlib/seaborn** - Data visualization
- **flask/django** - Web application development
- **scikit-learn** - Machine learning
3. **Explore advanced topics:**
- Object-oriented programming design patterns
- Asynchronous programming
- Testing and debugging
- Package management and virtual environments

## Additional Resources

- [Python Official Documentation](https://docs.python.org/3/)
- [Python Official Tutorial](https://docs.python.org/3/tutorial/)
- [Real Python](https://realpython.com/) - Comprehensive Python tutorials
- [Python for Everybody](https://www.py4e.com/) - Free course and book
- [PEP 8 Style Guide](https://peps.python.org/pep-0008/) - Python code style conventions

## Contributing

Found a bug or have a suggestion? Contributions are welcome!

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/improvement`)
3. Commit your changes (`git commit -m 'Add some improvement'`)
4. Push to the branch (`git push origin feature/improvement`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Author

**Scott Thornton**
AI Security Researcher @ perfecXion.ai

## Acknowledgments

Built with the goal of making Python accessible to everyone, regardless of their technical background. Learning to code opens doors - this tutorial aims to open that first door.

---

**Happy coding! 🐍**

If you find this tutorial helpful, please star the repository and share it with others who want to learn Python!

---

## Contact

**Scott Thornton** — AI Security Researcher

- Website: [perfecxion.ai](https://perfecxion.ai/)
- Email: [scott@perfecxion.ai](mailto:scott@perfecxion.ai)
- LinkedIn: [linkedin.com/in/scthornton](https://www.linkedin.com/in/scthornton)
- ORCID: [0009-0008-0491-0032](https://orcid.org/0009-0008-0491-0032)
- GitHub: [@scthornton](https://github.com/scthornton)

**Security Issues**: Please report via [SECURITY.md](SECURITY.md)