Skip to content

ProgSoc/Python2024

Repository files navigation

Beginners' Python

Workshop

  • Programming Background (secret program flow)
  • Installing Python
    • VSCode and Python Extension
  • History of Python
  • Rationale
  • Activity 0 - Intro to the REPL
  • Hello World
    • Intro to the REPL
  • Primitive Data-Types (int, float, string, bool)
  • Operators
    • REPL as a calculator
  • Variables
  • Moving into file-based programs
  • Input (Type Casting, F-Strings)
    • Introducer bot
    • len() for length of name, in f-string
    • Number entry and odd / even checker
  • Conditions
    • FizzBuzz checker (non-looping)
  • Simple Loops
    • for-range fizzbuzz loop
  • Activity 1 - Interactive User System
  • Lists (indexing)
    • play around in the repl
    • select from input as a fake user id log in
  • Advanced Collections (Dictionaries, Sets, Tuples)
    • username / password based entry to a system
  • Loops (for, while, break, continue)
    • list all users on screen (then users made before / after)
    • build our own REPL!
  • Functions (default args)
    • separate concerns (user inputselection vs action, move out into separate functions for each action)
    • Don't repeat yourself - user authentication repeated for different login moves
    • (aside, recursion and fibonnaci sequence)
  • Modules
    • random number guesser
  • External File Interaction
    • Writing calculations to a file
    • Reading inputs from a file
  • Activity 2 - Turtle Spirograph
    • Moving the turtle
    • Repeating to build a pattern
  • Classes
    • Spiro Class (position, turn, angle, acceleration factor)
    • Spiro Pivot Class (represents centre of page, can have connected spiros)
  • Activity 3 - Scripting & Scraping
    • Installing Packages from PyPI via pip (svg-turtle)
    • Get blog names, and convert to hyphenated (a-z0-9-) (beautifulsoup4)
    • Convert to two numbers, representing spiro size, and one more representing acceleration (0.5 - 1.5
  • Exceptions
    • urllib wrong URL
    • reading a missing file (config.txt - used to configure end point and css selector text search)
    • writing to a file that already exists (just the new name for now), accidentally overwritten, enable createnew
    • handle already existing file (overwrite save file function with y/n prompt)
    • write out svg files (svglib "reportlab<4")
  • More Scripting
    • File conversion and renaming (append OS datetime)
  • Advanced
    • Complex Numbers
    • Structured Pattern Matching
    • Lambda Expressions
    • global / nonlocal keywords
    • List Comprehension
    • Generators / Coroutines
    • For-Else Loops
    • Mutable default arguments
    • Classes
    • Iterables

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages