Skip to main content

🐍 Python Syntax Basics

Introduction

This tutorial covers the essential Python syntax and programming concepts you need to get started. We'll explore variables, data types, control structures, functions, and more. By the end, you'll have a solid foundation to write your first Python programs.

1. Your First Python Program

Hello World

# This is a comment
print("Hello, World!")

Running Python Code

# Save as hello.py and run
python3 hello.py

# Or run interactively
python3
>>> print("Hello, World!")
>>> exit()

2. Variables and Data Types

Variables

# Variables don't need type declarations
name = "Alice"
age = 25
height = 5.6
is_student = True

# Print variables
print(name)
print(f"My name is {name} and I'm {age} years old")

Basic Data Types

# Numbers
integer_number = 42
float_number = 3.14
complex_number = 3 + 4j

# Strings
single_quote = 'Hello'
double_quote = "World"
triple_quote = """This is a
multi-line string"""

# Boolean
is_true = True
is_false = False

# None (represents absence of value)
empty_value = None

# Check data types
print(type(integer_number)) # <class 'int'>
print(type(float_number)) # <class 'float'>
print(type(single_quote)) # <class 'str'>
print(type(is_true)) # <class 'bool'>

3. Numbers and Math Operations

Arithmetic Operations

# Basic arithmetic
a = 10
b = 3

print(a + b) # Addition: 13
print(a - b) # Subtraction: 7
print(a * b) # Multiplication: 30
print(a / b) # Division: 3.333...
print(a // b) # Floor division: 3
print(a % b) # Modulo (remainder): 1
print(a ** b) # Exponentiation: 1000

# Order of operations (PEMDAS)
result = 2 + 3 * 4 # 14, not 20
print(result)

# Parentheses for grouping
result = (2 + 3) * 4 # 20
print(result)

Math Functions

import math

# Built-in functions
print(abs(-5)) # Absolute value: 5
print(round(3.7)) # Round: 4
print(max(1, 5, 3)) # Maximum: 5
print(min(1, 5, 3)) # Minimum: 1
print(sum([1, 2, 3, 4])) # Sum: 10

# Math module functions
print(math.sqrt(16)) # Square root: 4.0
print(math.pi) # Pi: 3.14159...
print(math.ceil(4.2)) # Ceiling: 5
print(math.floor(4.8)) # Floor: 4

4. Strings

String Operations

# String concatenation
first_name = "John"
last_name = "Doe"
full_name = first_name + " " + last_name
print(full_name) # John Doe

# String repetition
stars = "*" * 10
print(stars) # **********

# String length
message = "Hello, Python!"
print(len(message)) # 14

# String indexing
text = "Python"
print(text[0]) # P (first character)
print(text[-1]) # n (last character)
print(text[2:5]) # tho (slice from index 2 to 4)

String Methods

text = "  Hello, World!  "

# Case methods
print(text.upper()) # " HELLO, WORLD! "
print(text.lower()) # " hello, world! "
print(text.title()) # " Hello, World! "
print(text.capitalize()) # " hello, world! "

# Whitespace methods
print(text.strip()) # "Hello, World!"
print(text.lstrip()) # "Hello, World! "
print(text.rstrip()) # " Hello, World!"

# Search methods
print(text.find("World")) # 9
print(text.count("l")) # 3
print("Hello" in text) # True

# Replace
print(text.replace("World", "Python")) # " Hello, Python! "

# Split and join
words = "apple,banana,cherry".split(",")
print(words) # ['apple', 'banana', 'cherry']

joined = "-".join(words)
print(joined) # apple-banana-cherry

String Formatting

name = "Alice"
age = 30
score = 95.5

# Old style (%)
print("Name: %s, Age: %d, Score: %.1f" % (name, age, score))

# .format() method
print("Name: {}, Age: {}, Score: {:.1f}".format(name, age, score))
print("Name: {0}, Age: {1}, Score: {2:.1f}".format(name, age, score))
print("Name: {n}, Age: {a}, Score: {s:.1f}".format(n=name, a=age, s=score))

# f-strings (Python 3.6+, recommended)
print(f"Name: {name}, Age: {age}, Score: {score:.1f}")
print(f"Next year I'll be {age + 1} years old")

5. Lists

Creating and Accessing Lists

# Create lists
fruits = ["apple", "banana", "cherry"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "hello", 3.14, True]

# Access elements
print(fruits[0]) # apple
print(fruits[-1]) # cherry
print(fruits[1:3]) # ['banana', 'cherry']

# List length
print(len(fruits)) # 3

List Operations

fruits = ["apple", "banana"]

# Add elements
fruits.append("cherry") # Add to end
fruits.insert(1, "orange") # Insert at index 1
fruits.extend(["grape", "kiwi"]) # Add multiple elements

print(fruits) # ['apple', 'orange', 'banana', 'cherry', 'grape', 'kiwi']

# Remove elements
fruits.remove("banana") # Remove by value
popped = fruits.pop() # Remove and return last element
del fruits[0] # Remove by index

# Other operations
print(fruits.count("apple")) # Count occurrences
print(fruits.index("cherry")) # Find index
fruits.sort() # Sort in place
fruits.reverse() # Reverse in place

List Comprehensions

# Traditional way
squares = []
for i in range(5):
squares.append(i ** 2)
print(squares) # [0, 1, 4, 9, 16]

# List comprehension (more Pythonic)
squares = [i ** 2 for i in range(5)]
print(squares) # [0, 1, 4, 9, 16]

# With conditions
even_squares = [i ** 2 for i in range(10) if i % 2 == 0]
print(even_squares) # [0, 4, 16, 36, 64]

6. Dictionaries

Creating and Accessing Dictionaries

# Create dictionary
person = {
"name": "Alice",
"age": 30,
"city": "New York",
"is_student": False
}

# Access values
print(person["name"]) # Alice
print(person.get("age")) # 30
print(person.get("salary", "Not specified")) # Not specified

# Check if key exists
print("name" in person) # True
print("salary" in person) # False

Dictionary Operations

person = {"name": "Alice", "age": 30}

# Add/update values
person["city"] = "New York"
person["age"] = 31

# Remove items
del person["city"]
age = person.pop("age", 0) # Remove and return value

# Dictionary methods
print(person.keys()) # dict_keys(['name'])
print(person.values()) # dict_values(['Alice'])
print(person.items()) # dict_items([('name', 'Alice')])

# Loop through dictionary
for key, value in person.items():
print(f"{key}: {value}")

7. Control Structures

Conditional Statements (if/elif/else)

age = 18

if age < 13:
print("Child")
elif age < 20:
print("Teenager")
elif age < 65:
print("Adult")
else:
print("Senior")

# Multiple conditions
score = 85
if score >= 90 and score <= 100:
grade = "A"
elif score >= 80 and score < 90:
grade = "B"
else:
grade = "C"

print(f"Grade: {grade}")

# Ternary operator
status = "adult" if age >= 18 else "minor"
print(status)

Loops

For Loops

# Loop through a list
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)

# Loop with index
for i, fruit in enumerate(fruits):
print(f"{i}: {fruit}")

# Loop through a range
for i in range(5):
print(i) # 0, 1, 2, 3, 4

for i in range(2, 8, 2):
print(i) # 2, 4, 6

# Loop through dictionary
person = {"name": "Alice", "age": 30, "city": "NYC"}
for key, value in person.items():
print(f"{key}: {value}")

While Loops

# Basic while loop
count = 0
while count < 5:
print(f"Count: {count}")
count += 1

# Break and continue
count = 0
while count < 10:
count += 1
if count == 3:
continue # Skip the rest of this iteration
if count == 7:
break # Exit the loop
print(count) # 1, 2, 4, 5, 6

8. Functions

Defining and Calling Functions

# Simple function
def greet():
print("Hello, World!")

greet() # Call the function

# Function with parameters
def greet_person(name, age=25):
print(f"Hello, {name}! You are {age} years old.")

greet_person("Alice") # Hello, Alice! You are 25 years old.
greet_person("Bob", 30) # Hello, Bob! You are 30 years old.

# Function with return value
def add_numbers(a, b):
return a + b

result = add_numbers(5, 3)
print(result) # 8

# Multiple return values
def get_name_parts(full_name):
parts = full_name.split()
return parts[0], parts[-1] # Returns tuple

first, last = get_name_parts("John Doe")
print(f"First: {first}, Last: {last}")

Function Examples

# Calculate area of rectangle
def rectangle_area(length, width):
"""Calculate the area of a rectangle."""
return length * width

area = rectangle_area(5, 3)
print(f"Area: {area}")

# Check if number is even
def is_even(number):
return number % 2 == 0

print(is_even(4)) # True
print(is_even(7)) # False

# Find maximum in a list
def find_max(numbers):
if not numbers:
return None
max_num = numbers[0]
for num in numbers[1:]:
if num > max_num:
max_num = num
return max_num

numbers = [3, 7, 2, 9, 1]
print(f"Maximum: {find_max(numbers)}")

9. Error Handling

Try/Except Blocks

# Basic error handling
try:
number = int(input("Enter a number: "))
result = 10 / number
print(f"Result: {result}")
except ValueError:
print("Please enter a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")
except Exception as e:
print(f"An error occurred: {e}")
else:
print("No errors occurred!")
finally:
print("This always runs!")

# Multiple exceptions
try:
# Some code that might fail
pass
except (ValueError, TypeError) as e:
print(f"Input error: {e}")
except Exception as e:
print(f"Unexpected error: {e}")

10. File Operations

Reading and Writing Files

# Write to file
with open("example.txt", "w") as file:
file.write("Hello, World!\n")
file.write("This is a test file.\n")

# Read from file
with open("example.txt", "r") as file:
content = file.read()
print(content)

# Read line by line
with open("example.txt", "r") as file:
for line in file:
print(line.strip()) # strip() removes newline characters

# Append to file
with open("example.txt", "a") as file:
file.write("This line was appended.\n")

11. Modules and Imports

Using Built-in Modules

# Import entire module
import math
print(math.pi)
print(math.sqrt(16))

# Import specific functions
from math import pi, sqrt
print(pi)
print(sqrt(16))

# Import with alias
import datetime as dt
now = dt.datetime.now()
print(now)

# Import all (not recommended)
from math import *
print(sin(pi/2)) # 1.0

Creating Your Own Module

# Save as calculator.py
def add(a, b):
return a + b

def multiply(a, b):
return a * b

# Use in another file
from calculator import add, multiply
print(add(5, 3)) # 8
print(multiply(4, 6)) # 24

12. Practice Exercises

Exercise 1: Temperature Converter

def celsius_to_fahrenheit(celsius):
"""Convert Celsius to Fahrenheit."""
return (celsius * 9/5) + 32

def fahrenheit_to_celsius(fahrenheit):
"""Convert Fahrenheit to Celsius."""
return (fahrenheit - 32) * 5/9

# Test the functions
c = 25
f = celsius_to_fahrenheit(c)
print(f"{c}°C = {f}°F")

f = 77
c = fahrenheit_to_celsius(f)
print(f"{f}°F = {c}°C")

Exercise 2: Word Counter

def count_words(text):
"""Count words in a text."""
words = text.split()
return len(words)

def count_characters(text):
"""Count characters (excluding spaces)."""
return len(text.replace(" ", ""))

# Test
text = "Hello world! This is a test."
print(f"Words: {count_words(text)}")
print(f"Characters: {count_characters(text)}")

Exercise 3: Number Guessing Game

import random

def guessing_game():
"""Simple number guessing game."""
secret_number = random.randint(1, 100)
attempts = 0

print("I'm thinking of a number between 1 and 100.")

while True:
try:
guess = int(input("Enter your guess: "))
attempts += 1

if guess < secret_number:
print("Too low!")
elif guess > secret_number:
print("Too high!")
else:
print(f"Congratulations! You guessed it in {attempts} attempts!")
break
except ValueError:
print("Please enter a valid number!")

# Uncomment to play
# guessing_game()

Conclusion

You've learned the fundamental Python syntax including:

  • Variables and data types (int, float, str, bool, list, dict)
  • Control structures (if/elif/else, for/while loops)
  • Functions (defining, calling, parameters, return values)
  • Error handling (try/except blocks)
  • File operations (reading and writing files)
  • Modules (importing and using)

Next Steps