Skip to content

alisulmanpro/Python-Mastery-Hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 

Repository files navigation

Programming Fundamentals | Python

License Status

This is a simple step-by-step Python learning hub for complete beginners. You start from zero and slowly become good at coding. We have 7 levels. Each level teaches one important topic with easy practice questions. Practice is the only way to learn coding well – do every question yourself. After the levels, try the 20 fun console projects to use everything you learned.


Image


Table of Contents


Set 1: Variables & Input/Output

Purpose
Learn how to store data in variables, take input from user, and print results. This is the first step of every Python program.

  1. Swap Two Numbers
    Define two numbers in variable. Swap them without extra variable. Print both after swap.

    Example: Input `First = 10` and `Second = 20` → Output: `First = 20`, `Second = 10`
  2. Swap Two Strings
    Take two strings from user. Swap them without extra variable. Print both after swap.

    Example: Input `First = "Ali"` and `Second = "Alia"` → Output: `First = "Alia"`, `Second = "Ali"`
  3. Add Two Numbers
    Ask user for two numbers. Add them and print the sum.

    Example: Input `5` and `8` → Output: `Sum = 13`
  4. Area of Rectangle
    Ask user for length and width. Calculate area and print it.

    Example: Input `4` and `6` → Output: `Area = 24`
  5. Say Hello to User
    Ask user for name. Print Hello [Name]!

    Example: Input `Ali` → Output: `Hello Ali!`
  6. Full Name Greeting
    Ask for first name and last name. Join them and print greeting.

    Example: Input `Alia` and `Mirza` → Output: `Hello, Alia Mirza!`
  7. Welcome with Age
    Ask for name and age. Print welcome message using f-string.

    Example: Input `Ali` and `20` → Output: `Welcome, Ali! You are 20 years old.`

Set 2: Strings

Purpose
Learn how to work with words and sentences. Almost every program needs text.

  1. String Length Counter
    Ask user for a sentence. Print how many characters it has.

    Example: Input `Hello Pakistan` → Output: `Length: 14`
  2. Upper and Lower Case
    Ask for a string. Print it in uppercase and lowercase.

    Example: Input `Python` → Output: `UPPER: PYTHON`, `lower: python`
  3. Name Formatting
    Ask first and last name. Print normal, uppercase, and title case.

    Example: Input `lilly`, `collins` → Output: `Normal: lilly collins`, `Title Case: Lilly Collins`
  4. Formatted Bill
    Ask item name, quantity, price. Print neat bill with total.

    Example: Input `Apple`, `5`, `50` → Output:  
    `Item: Apple`  
    `Quantity: 5`  
    `Total: Rs.250`

Set 3: If/Elif/Else - Conditionals

Purpose
Learn how to make your program choose different actions using if/elif/else.

  1. Even or Odd
    Ask a number. Print Even or Odd.

    Example: Input `7` → Output: `Odd`
  2. Compare Two Numbers
    Ask two numbers. Print which is bigger or if equal.

    Example: Input `10` `5` → Output: `10 is greater`
  3. Pass or Fail
    Ask marks. Print Pass (≥40) or Fail.

    Example: Input `35` → Output: `Fail`
  4. Count Vowels
    Ask for a word. Count vowels (a,e,i,o,u – ignore case).

    Example: Input `education` → Output: `Number of vowels: 5`
  5. Positive, Negative, Zero
    Ask a number. Print what it is.

    Example: Input `-4` → Output: `Negative`
  6. Grade System
    Ask percentage. Print A (≥80), B (60-79), C (40-59), Fail.

    Example: Input `85` → Output: `A Grade`
  7. Simple Calculator
    Ask two numbers and operation (+ - * /). Print result. Show error for divide by zero.

    Example: Input `10`, `5`, `/` → Output: `Result: 2.0`

Set 4: Loops

Purpose
Learn how to repeat work easily using while and for loops.

  1. Print 1 to 10
    Use for loop to print numbers 1 to 10.

  2. Multiplication Table
    Ask a number. Print its table (1 to 10).

    Example: Input `5``5 x 1 = 5` ... `5 x 10 = 50`
  3. Sum of Numbers
    Ask a number n. Print sum from 1 to n.

    Example: Input `10` → Output: `Sum = 55`
  4. Even Numbers 1-20
    Print all even numbers from 1 to 20 using loop.

  5. Countdown
    Print numbers from 10 down to 1 using while loop.

  6. Simple Star Pattern
    Print this pattern using loops:

    *                 1
    * *               1 2
    * * *             1 2 3
    * * * *           1 2 3 4
    * * * * *         1 2 3 4 5

Set 5: Lists & Tuples

Purpose
Learn how to store many items in lists (can change) and tuples (cannot change).

  1. Create Fruit List
    Ask user for 5 fruits. Store in list and print.

  2. Access List Items
    Make list [10,20,30,40,50]. Print first, middle, last.

  3. Add and Insert Items
    Start empty list. Append 3 items. Insert one at position 1. Print final list.

  4. List Slicing
    Make list 1 to 10. Print first 5, last 3, and items 3 to 8.

  5. Introduction to Tuples
    Make tuple of 5 days. Print it and try to change one item (will give error).

  6. Convert List to Tuple
    Ask 4 subjects → store in list → convert to tuple → print both.


Set 6: Sets & Dictionaries

Purpose
Learn sets (unique items) and dictionaries (key-value pairs).

  1. Create and Add to Set
    Make empty set. Add 5 numbers. Print set (duplicates removed).

  2. Set Operations
    Make two sets. Print union and intersection.

  3. Remove from Set
    Make set with 6 items. Remove one and discard one (if not exist). Print after each.

  4. Student Marks Dictionary
    Make dict with 3 student names and marks. Print all.

  5. Add and Update Dict
    Start empty dict. Add 3 key-value pairs. Update one value.

  6. Word Frequency
    Ask a sentence. Make dict to count how many times each word appears.


Set 7: Functions

Why this level?
Learn how to make functions so you can use same code again easily.

  1. Add Two Numbers Function
    Make function add(a, b) that returns sum. Call it and print.

  2. Check Even/Odd Function
    Make function is_even(num) that returns True or False. Use it.

  3. Maximum of Three
    Make function max_of_three(a,b,c) that returns biggest number.

  4. Factorial Function
    Make function factorial(n) using loop. Return n!.

  5. Greeting Function
    Make function greet(name, age) that prints welcome message.

  6. Area Calculator Function
    Make function area(shape, values) that calculates rectangle or triangle area.


Projects

1. Number Guessing Game

Skills: variables, loops, conditionals, random, input validation, functions.

Milestones

  • V1 (starter): Computer picks 1–100, student guesses, give higher/lower hints, track attempts.
  • V2 (required): Add input validation, allow multiple rounds, show best score (fewest attempts).
  • Stretch (self-learn): Add difficulty levels (range changes), timer, and persistent high-score file.
    Starter hint: import randomsecret = random.randint(1,100); loop until guessed.
    Quick tests: guess correctly in N attempts; invalid input doesn't crash.

2. Simple Calculator (CLI)

Skills: functions, exception handling, parsing strings, loops.

Milestones

  • V1: Support + - * / for two numbers via input prompts.
  • V2: Support chaining operations, handle divide-by-zero and bad input.
  • Stretch: implement expression parsing (e.g., "3 + 4 * 2") or REPL mode.
    Starter hint: separate parse_input(), compute(a, op, b) functions. Use try/except.
    Quick tests: 3/0 handled gracefully; "abc" prompts again.

3. To-Do List with File Save/Load

Skills: lists, file I/O (text or JSON), CRUD operations, functions.

Milestones

  • V1: add/view/remove tasks stored in memory.
  • V2: save/load tasks to a JSON/text file so tasks survive program restart.
  • Stretch: search/filter tasks, mark priority, and sort by date added.
    Starter hint: use json module: write tasks (list of dicts) to disk.
    Quick tests: add task → saved file contains task; restart program → tasks loaded.

4) Contact Book (CSV or JSON)

Skills: dictionaries, lists, file I/O, simple validation, search.

Milestones

  • V1: basic add/view/search by name (in-memory).
  • V2: persist using CSV/JSON; update/delete contact.
  • Stretch: export/import VCF, or search fuzzy matches.
    Starter hint: store each contact as { "name":..., "phone":..., "email":... } and use list comprehension for search.
    Quick tests: add → find by name; remove → no longer found; file persists.

5) Mad Libs / Story Generator

Skills: strings, concatenation, user input, functions, lists.

Milestones

  • V1: ask for a few words and print the story.
  • V2: support multiple story templates chosen by user.
  • Stretch: read templates from files, randomize templates, or add grammar checks.
    Starter hint: use placeholders like {noun} and .format(**answers).
    Quick tests: given inputs, output contains those words in expected places.

6) Dice Rolling Simulator + Probability Estimator

Skills: random, loops, counters, basic plotting (optional), statistics.

Milestones

  • V1: Simulate rolling N dice and show outcomes counts.
  • V2: Run many trials, show empirical probabilities and compare to expected.
  • Stretch: Display histogram (matplotlib optional) and let user choose dice types.
    Starter hint: Collections.Counter is handy for counts.
    Quick tests: 6-sided die → approx 1/6 frequency in many trials (students can see convergence).

7) Expense Tracker (CLI)

Skills: lists/dicts, file I/O (CSV/JSON), aggregation, date handling (optional).

Milestones

  • V1: Add expense (amount + category) and show total per run.
  • v2: Persist to CSV, show totals per category and monthly totals.
  • Stretch: Import bank CSV, filter by date ranges.
    Starter hint: Represent each record as {"amount":float, "cat":str, "date": "YYYY-MM-DD"}; use csv or json.
    Quick tests: Add entries → category totals correct.

8) CLI Quiz System (question bank JSON)

Skills: JSON, loops, input validation, scoring, functions.

Milestones

  • V1: Ask 5 questions from an in-memory list; compute score.
  • V2: Load questions from JSON, randomize order, show correct answers at end.
  • Stretch: Timed questions, multiple users, and persistent user scores.
    Starter hint: JSON schema: {"q":"...", "options":["a","b"], "answer":0}.
    Quick tests: Scoring matches expected answers; JSON loads properly.

9) FizzBuzz Variants & Pattern Printing (algorithmic thinking)

Skills: loops, conditionals, modulo arithmetic, nested loops for patterns.

Milestones

  • V1: Classic FizzBuzz (print 1..N with rules).
  • V2: Extend rules (e.g., multiple keyword mapping), and write unit tests.
  • Stretch: Generate ASCII shapes (pyramids) and analyze complexity (O(n), O(n^2)).
    Starter hint: Use modular checks in order (if i % 15 == 0 before %3/%5).
    Quick tests: Known sequences for first 20 values.

10) Word Frequency Counter (file input)

Skills: file I/O, string processing, dicts, sorting.

Milestones

  • V1: Read a text file and output top-10 words.
  • V2: Ignore stopwords/punctuation, case-insensitive, show counts.
  • Stretch: Build concordance or show sentence locations for top words.
    Starter hint: Normalize text (.lower()), remove punctuation (str.translate) and use Counter.
    Quick tests: For short sample file, expected top words & counts.

11) Simple Bank Account Simulator (state and simple OOP optional)

Skills: functions, state management, optional classes, input validation.

Milestones

  • V1: Simulate deposit/withdrawal and show balance (functional style).
  • V2: Add transaction history (list) and persist to JSON.
  • Stretch: Convert to Account class, support multiple accounts and transfers.
    Starter hint: Start with procedural approach before introducing class Account: as a stretch.
    Quick tests: Deposits and withdrawals update balance; cannot withdraw over balance.

About

Structured Python practice hub for beginners learning Programming Fundamentals (PF). Features 7 sequenced question sets, 20 mega tasks, and 10 console projects to master variables, conditionals, loops, lists, functions & more through hands-on coding.

Topics

Resources

License

Stars

Watchers

Forks

Contributors