How to writing your first python script
How to Write Your First Python Script: A Complete Beginner's Guide
Table of Contents
1. [Introduction](#introduction)
2. [Prerequisites and Requirements](#prerequisites-and-requirements)
3. [Understanding Python Scripts](#understanding-python-scripts)
4. [Setting Up Your Development Environment](#setting-up-your-development-environment)
5. [Writing Your First Python Script](#writing-your-first-python-script)
6. [Running Your Python Script](#running-your-python-script)
7. [Practical Examples and Use Cases](#practical-examples-and-use-cases)
8. [Common Issues and Troubleshooting](#common-issues-and-troubleshooting)
9. [Best Practices and Professional Tips](#best-practices-and-professional-tips)
10. [Next Steps and Advanced Concepts](#next-steps-and-advanced-concepts)
11. [Conclusion](#conclusion)
Introduction
Python has become one of the most popular programming languages in the world, known for its simplicity, readability, and versatility. Whether you're interested in web development, data science, automation, or artificial intelligence, learning to write Python scripts is an essential first step in your programming journey.
This comprehensive guide will walk you through the entire process of writing your first Python script, from setting up your development environment to running and troubleshooting your code. By the end of this article, you'll have the knowledge and confidence to create your own Python scripts and understand the fundamental concepts that will serve as the foundation for more advanced programming projects.
We'll cover everything from the basics of Python syntax to practical examples that demonstrate real-world applications. This guide is designed for complete beginners, but it also includes professional tips and best practices that will help you develop good programming habits from the start.
Prerequisites and Requirements
Before diving into writing your first Python script, let's ensure you have everything you need to get started successfully.
System Requirements
Python runs on virtually any operating system, including:
- Windows 10 or later
- macOS 10.9 or later
- Linux distributions (Ubuntu, CentOS, Debian, etc.)
- Minimum 4GB RAM (8GB recommended)
- At least 1GB of free disk space
Knowledge Prerequisites
This guide assumes:
- Basic computer literacy (file management, text editing)
- Familiarity with using command line/terminal (helpful but not required)
- No prior programming experience necessary
Required Software
You'll need to install:
1. Python Interpreter: The core Python software
2. Text Editor or IDE: For writing your code
3. Terminal/Command Prompt: For running scripts
Understanding Python Scripts
What is a Python Script?
A Python script is a file containing Python code that can be executed to perform specific tasks. Unlike compiled languages, Python is an interpreted language, meaning your code is executed line by line by the Python interpreter.
Key Characteristics of Python Scripts
Readable Syntax: Python uses indentation and plain English-like keywords, making it easy to read and understand.
Interpreted Language: No compilation step required; scripts run directly through the Python interpreter.
Cross-Platform: Python scripts can run on different operating systems with minimal or no modifications.
Extensive Libraries: Access to thousands of pre-built modules and libraries for various tasks.
File Extensions and Naming Conventions
Python script files typically use the `.py` extension. When naming your scripts:
- Use lowercase letters
- Separate words with underscores
- Choose descriptive names
- Avoid spaces and special characters
Examples of good script names:
- `hello_world.py`
- `calculator.py`
- `data_processor.py`
- `web_scraper.py`
Setting Up Your Development Environment
Installing Python
Windows Installation
1. Visit the official Python website at [python.org](https://python.org)
2. Click "Download Python" to get the latest version
3. Run the installer and check "Add Python to PATH"
4. Select "Install Now" for default installation
5. Verify installation by opening Command Prompt and typing:
```cmd
python --version
```
macOS Installation
Option 1: Official Installer
1. Download Python from [python.org](https://python.org)
2. Run the `.pkg` installer
3. Follow the installation wizard
Option 2: Using Homebrew
```bash
brew install python
```
Linux Installation
Ubuntu/Debian:
```bash
sudo apt update
sudo apt install python3 python3-pip
```
CentOS/RHEL:
```bash
sudo yum install python3 python3-pip
```
Choosing a Text Editor or IDE
Beginner-Friendly Options
IDLE: Comes built-in with Python installation
- Simple interface
- Integrated shell
- Syntax highlighting
- Perfect for beginners
Visual Studio Code: Free, powerful editor
- Excellent Python extension
- IntelliSense code completion
- Integrated terminal
- Git integration
PyCharm Community Edition: Professional IDE
- Advanced debugging tools
- Code analysis
- Project management
- Free community version available
Setting Up Visual Studio Code for Python
1. Download and install VS Code
2. Install the Python extension by Microsoft
3. Open VS Code and create a new file
4. Save with `.py` extension
5. VS Code will automatically detect Python and offer to install additional tools
Writing Your First Python Script
The Classic "Hello, World!" Program
Let's start with the traditional first program that every programmer writes:
```python
This is my first Python script
print("Hello, World!")
```
Step-by-Step Breakdown
1. Comment Line: The `#` symbol creates a comment that doesn't execute
2. Print Function: `print()` displays text to the console
3. String Literal: Text enclosed in quotes is called a string
Creating Your First Script File
1. Open your chosen text editor
2. Type the "Hello, World!" code above
3. Save the file as `hello_world.py`
4. Choose a memorable location like your Desktop or Documents folder
Understanding Python Syntax Basics
Variables and Data Types
```python
Variables store data
name = "Alice" # String
age = 25 # Integer
height = 5.6 # Float
is_student = True # Boolean
Display variables
print("Name:", name)
print("Age:", age)
print("Height:", height)
print("Is student:", is_student)
```
Basic Operations
```python
Arithmetic operations
x = 10
y = 3
addition = x + y # 13
subtraction = x - y # 7
multiplication = x * y # 30
division = x / y # 3.333...
integer_division = x // y # 3
remainder = x % y # 1
power = x y # 1000
print("Addition:", addition)
print("Division:", division)
```
User Input
```python
Getting input from users
name = input("What's your name? ")
print("Hello, " + name + "!")
Converting input to numbers
age = int(input("What's your age? "))
print("Next year you'll be", age + 1)
```
Running Your Python Script
Method 1: Using Command Line/Terminal
Windows (Command Prompt)
```cmd
cd C:\path\to\your\script
python hello_world.py
```
macOS/Linux (Terminal)
```bash
cd /path/to/your/script
python3 hello_world.py
```
Method 2: Using IDLE
1. Open IDLE from your Start menu or Applications
2. Go to File → Open
3. Select your script file
4. Press F5 or go to Run → Run Module
Method 3: Using Visual Studio Code
1. Open your script in VS Code
2. Right-click in the editor
3. Select "Run Python File in Terminal"
4. Or use the play button in the top-right corner
Method 4: Double-Clicking (Windows)
If Python is properly installed, you can double-click your `.py` file to run it. However, the console window may close immediately after execution.
Practical Examples and Use Cases
Example 1: Simple Calculator
```python
Simple Calculator Script
print("=== Simple Calculator ===")
Get user input
num1 = float(input("Enter first number: "))
operation = input("Enter operation (+, -, *, /): ")
num2 = float(input("Enter second number: "))
Perform calculation
if operation == "+":
result = num1 + num2
elif operation == "-":
result = num1 - num2
elif operation == "*":
result = num1 * num2
elif operation == "/":
if num2 != 0:
result = num1 / num2
else:
result = "Error: Division by zero!"
else:
result = "Error: Invalid operation!"
Display result
print("Result:", result)
```
Example 2: Password Generator
```python
import random
import string
Password Generator Script
print("=== Password Generator ===")
Get password requirements
length = int(input("Enter password length: "))
include_symbols = input("Include symbols? (y/n): ").lower() == 'y'
Define character sets
characters = string.ascii_letters + string.digits
if include_symbols:
characters += string.punctuation
Generate password
password = ''.join(random.choice(characters) for _ in range(length))
print("Generated password:", password)
```
Example 3: File Organizer
```python
import os
import shutil
File Organizer Script
def organize_files(directory):
"""Organize files in a directory by extension"""
# Define file type categories
file_types = {
'Images': ['.jpg', '.jpeg', '.png', '.gif', '.bmp'],
'Documents': ['.pdf', '.doc', '.docx', '.txt', '.rtf'],
'Videos': ['.mp4', '.avi', '.mov', '.mkv', '.flv'],
'Audio': ['.mp3', '.wav', '.flac', '.aac'],
'Archives': ['.zip', '.rar', '.7z', '.tar', '.gz']
}
# Create folders for each category
for folder_name in file_types.keys():
folder_path = os.path.join(directory, folder_name)
if not os.path.exists(folder_path):
os.makedirs(folder_path)
# Organize files
for filename in os.listdir(directory):
if os.path.isfile(os.path.join(directory, filename)):
file_extension = os.path.splitext(filename)[1].lower()
# Find appropriate folder
for folder_name, extensions in file_types.items():
if file_extension in extensions:
source = os.path.join(directory, filename)
destination = os.path.join(directory, folder_name, filename)
shutil.move(source, destination)
print(f"Moved {filename} to {folder_name}")
break
Usage
target_directory = input("Enter directory path to organize: ")
if os.path.exists(target_directory):
organize_files(target_directory)
print("Organization complete!")
else:
print("Directory not found!")
```
Example 4: Weather Information Script
```python
import requests
import json
Weather Information Script (requires internet connection)
def get_weather(city):
"""Get weather information for a city"""
# Note: You would need to get a free API key from OpenWeatherMap
api_key = "your_api_key_here"
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric"
try:
response = requests.get(url)
data = response.json()
if response.status_code == 200:
temperature = data['main']['temp']
description = data['weather'][0]['description']
humidity = data['main']['humidity']
print(f"Weather in {city}:")
print(f"Temperature: {temperature}°C")
print(f"Description: {description}")
print(f"Humidity: {humidity}%")
else:
print("City not found!")
except requests.exceptions.RequestException:
print("Error: Could not connect to weather service")
Usage
city_name = input("Enter city name: ")
get_weather(city_name)
```
Common Issues and Troubleshooting
Python Not Found Error
Problem: `'python' is not recognized as an internal or external command`
Solutions:
1. Windows: Reinstall Python and check "Add Python to PATH"
2. Alternative: Use `py` instead of `python` command
3. Manual PATH: Add Python installation directory to system PATH
Syntax Errors
Problem: `SyntaxError: invalid syntax`
Common Causes:
- Missing parentheses: `print "Hello"` → `print("Hello")`
- Incorrect indentation
- Missing quotes: `print(Hello)` → `print("Hello")`
- Mixing tabs and spaces
Example Fix:
```python
Wrong
if x > 5:
print("Greater than 5")
Correct
if x > 5:
print("Greater than 5")
```
IndentationError
Problem: `IndentationError: expected an indented block`
Solution: Python uses indentation to define code blocks. Use 4 spaces consistently:
```python
Wrong
if True:
print("This will cause an error")
Correct
if True:
print("This works correctly")
```
ModuleNotFoundError
Problem: `ModuleNotFoundError: No module named 'requests'`
Solution: Install the required module using pip:
```bash
pip install requests
```
File Not Found Errors
Problem: `FileNotFoundError: [Errno 2] No such file or directory`
Solutions:
1. Check file path spelling
2. Use absolute paths instead of relative paths
3. Verify file exists in the specified location
4. Use `os.path.exists()` to check before opening files
Encoding Issues
Problem: `UnicodeDecodeError` when reading files
Solution: Specify encoding when opening files:
```python
Instead of
with open('file.txt', 'r') as f:
content = f.read()
Use
with open('file.txt', 'r', encoding='utf-8') as f:
content = f.read()
```
Best Practices and Professional Tips
Code Organization and Structure
Use Meaningful Variable Names
```python
Poor naming
x = 25
y = "John"
z = True
Good naming
user_age = 25
user_name = "John"
is_logged_in = True
```
Add Comments and Documentation
```python
Calculate the area of a rectangle
def calculate_area(length, width):
"""
Calculate the area of a rectangle.
Args:
length (float): The length of the rectangle
width (float): The width of the rectangle
Returns:
float: The area of the rectangle
"""
return length * width
```
Follow PEP 8 Style Guide
Naming Conventions:
- Variables and functions: `snake_case`
- Constants: `UPPER_CASE`
- Classes: `PascalCase`
Spacing:
- Two blank lines before class definitions
- One blank line before function definitions
- Spaces around operators: `x = y + z`
Use Functions to Organize Code
```python
def main():
"""Main function to organize script execution"""
print("Starting program...")
user_name = get_user_name()
greet_user(user_name)
print("Program finished.")
def get_user_name():
"""Get user name from input"""
return input("Enter your name: ")
def greet_user(name):
"""Greet the user"""
print(f"Hello, {name}!")
Run the script only if executed directly
if __name__ == "__main__":
main()
```
Error Handling
Use Try-Except Blocks
```python
try:
age = int(input("Enter your age: "))
print(f"You are {age} years old")
except ValueError:
print("Please enter a valid number")
except Exception as e:
print(f"An unexpected error occurred: {e}")
```
Validate User Input
```python
def get_positive_number(prompt):
"""Get a positive number from user input"""
while True:
try:
number = float(input(prompt))
if number > 0:
return number
else:
print("Please enter a positive number.")
except ValueError:
print("Please enter a valid number.")
Usage
radius = get_positive_number("Enter circle radius: ")
```
Security Considerations
Avoid Using `eval()` with User Input
```python
Dangerous - never do this
user_input = input("Enter calculation: ")
result = eval(user_input) # User could input malicious code
Safe alternative
import ast
import operator
def safe_calculate(expression):
"""Safely evaluate simple mathematical expressions"""
allowed_operators = {
ast.Add: operator.add,
ast.Sub: operator.sub,
ast.Mult: operator.mul,
ast.Div: operator.truediv
}
# Implementation would parse and validate the expression
# This is a simplified example
```
Sanitize File Paths
```python
import os
def safe_file_path(filename):
"""Ensure filename is safe and doesn't contain path traversal"""
# Remove directory traversal attempts
filename = os.path.basename(filename)
# Additional validation as needed
return filename
```
Performance Tips
Use List Comprehensions When Appropriate
```python
Less efficient
squares = []
for i in range(10):
squares.append(i 2)
More efficient
squares = [i 2 for i in range(10)]
```
Use Built-in Functions
```python
Instead of manual loops
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
maximum = max(numbers)
minimum = min(numbers)
```
Next Steps and Advanced Concepts
Expanding Your Python Knowledge
Once you're comfortable with basic Python scripts, consider exploring these areas:
Object-Oriented Programming
```python
class BankAccount:
def __init__(self, account_holder, initial_balance=0):
self.account_holder = account_holder
self.balance = initial_balance
def deposit(self, amount):
self.balance += amount
print(f"Deposited ${amount}. New balance: ${self.balance}")
def withdraw(self, amount):
if amount <= self.balance:
self.balance -= amount
print(f"Withdrew ${amount}. New balance: ${self.balance}")
else:
print("Insufficient funds!")
Usage
account = BankAccount("John Doe", 1000)
account.deposit(500)
account.withdraw(200)
```
Working with External Libraries
```python
Data analysis with pandas
import pandas as pd
Web scraping with requests and BeautifulSoup
import requests
from bs4 import BeautifulSoup
GUI development with tkinter
import tkinter as tk
from tkinter import messagebox
```
File Handling and Data Processing
```python
import csv
import json
Reading CSV files
def read_csv_file(filename):
with open(filename, 'r') as file:
csv_reader = csv.reader(file)
for row in csv_reader:
print(row)
Working with JSON data
def process_json_data(filename):
with open(filename, 'r') as file:
data = json.load(file)
# Process data as needed
return data
```
Building Larger Projects
Project Structure
```
my_project/
├── main.py
├── config.py
├── utils/
│ ├── __init__.py
│ ├── helpers.py
│ └── validators.py
├── data/
│ └── input_files.csv
├── tests/
│ └── test_main.py
└── requirements.txt
```
Version Control with Git
Learn to use Git for tracking changes in your code:
```bash
git init
git add .
git commit -m "Initial commit"
git push origin main
```
Virtual Environments
Manage project dependencies with virtual environments:
```bash
python -m venv myproject_env
source myproject_env/bin/activate # On Windows: myproject_env\Scripts\activate
pip install -r requirements.txt
```
Learning Resources
Online Platforms
- Python.org Tutorial: Official Python documentation
- Codecademy: Interactive Python courses
- freeCodeCamp: Free comprehensive programming courses
- Real Python: In-depth tutorials and articles
- LeetCode: Coding practice problems
Books for Further Learning
- "Automate the Boring Stuff with Python" by Al Sweigart
- "Python Crash Course" by Eric Matthes
- "Effective Python" by Brett Slatkin
- "Clean Code in Python" by Mariano Anaya
Practice Projects
1. Todo List Manager: Command-line task management
2. Web Scraper: Extract data from websites
3. Data Analyzer: Process and visualize CSV data
4. Simple Web Server: Flask-based web application
5. Game Development: Text-based adventure game
Conclusion
Congratulations! You've taken your first steps into the world of Python programming by learning how to write, run, and troubleshoot your first Python script. This comprehensive guide has covered everything from basic setup to advanced best practices, providing you with a solid foundation for your programming journey.
Key Takeaways
Throughout this guide, you've learned:
- Environment Setup: How to install Python and choose appropriate development tools
- Basic Syntax: Understanding Python's readable and intuitive syntax structure
- Script Creation: Step-by-step process of writing and saving Python scripts
- Execution Methods: Multiple ways to run your Python scripts across different platforms
- Practical Applications: Real-world examples including calculators, file organizers, and data processors
- Troubleshooting Skills: Common issues and their solutions to help you debug effectively
- Best Practices: Professional coding standards and security considerations
- Growth Path: Next steps for advancing your Python programming skills
Remember the Fundamentals
As you continue your Python journey, keep these core principles in mind:
1. Start Simple: Begin with basic scripts and gradually increase complexity
2. Practice Regularly: Consistent coding practice is key to skill development
3. Read Documentation: Python's extensive documentation is your best friend
4. Join Communities: Engage with other Python developers for support and learning
5. Build Projects: Apply your knowledge through practical, real-world projects
Your Next Actions
To continue building on what you've learned:
1. Practice Daily: Write at least one small Python script each day
2. Explore Libraries: Investigate Python libraries relevant to your interests
3. Join Online Communities: Participate in forums like Reddit's r/learnpython or Stack Overflow
4. Take on Challenges: Solve coding problems on platforms like HackerRank or Codewars
5. Build a Portfolio: Create a collection of scripts and projects to showcase your skills
Python's versatility makes it an excellent choice for beginners and professionals alike. Whether you're interested in web development, data science, automation, artificial intelligence, or any other field, the skills you've learned in this guide will serve as a strong foundation for your continued growth as a programmer.
Remember that every expert programmer started exactly where you are now – with their first script. The journey of learning to program is ongoing, filled with challenges and rewards. Stay curious, keep practicing, and don't be afraid to experiment with new ideas and concepts.
Your first Python script is just the beginning of an exciting adventure in programming. Welcome to the wonderful world of Python development!