Skip to content

epurpur/python-intro

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 

Repository files navigation

-Last updated 01/21/2025

Link to recording of this workshop

Who am I?

  • Erich Purpur

  • Research Librarian for Science & Engineering

  • Research Data Services

    -I'm a Science & Engineering Librarian and a liaison to various Science & Engineering departments here at UVA. Basically, it means that if there is a way for the library to support those departments, I am responsible for making that happen. I also do various other things like teach workshops on technical topics, like the one you are taking today. I also am involved in internal library projects and committees.

  • Feel free to interrupt with questions!

Welcome to the UVA Library

Upcoming Python Workshops

Workshop Date Time
Intro to Python pt 1 Tuesday 9/2 11:00 - 12:30am
Intro to Python pt 2 Tuesday 9/9 11:00 - 12:30am
Python Data Analysis & Visualization Tuesday 9/16 11:00 - 12:30am
AI Prompt Engineering for Python Thursday 9/18 1:00 - 2:30pm

Upcoming AI Workshops

Workshop Date Time
Using Large Language Models Locally Thursday 9/4 1:00 - 2:30pm
AI Prompt Engineering w/ CLEAR Framework Thursday 9/11 1:00 - 2:30pm
AI Prompt Engineering for Python Thursday 9/18 1:00 - 2:30pm

Getting Anaconda + Python (this will take some time)

Getting the files we are working with today

  • Go here: https://github.com/epurpur/python-intro
  • Click "Clone or Download" (green button in upper right corner)
  • Click "Download Zip"
  • Unzip that directory and move it somewhere that is easy to find (like your Desktop, for example)

Goals for Today

  1. Get python running
  2. Learn some fundamentals
  3. Learn how to help yourself (including ChatGPT / AI)

Outline

  1. Strings
  2. Print Statement
  3. Numbers (Int and Float)
  4. Errors
  5. Functions (Built-ins and custom)
  6. Lists, Loops, Booleans, Indexing
  7. Dictionaries
  8. Import
  9. Conditional Statements
  10. Mutable vs. Immutable data types

What is Python?

From www.python.org: "Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Its high-level built in data structures, combined with dynamic typing and dynamic binding, make it very attractive for Rapid Application Development, as well as for use as a scripting or glue language to connect existing components together. Python's simple, easy to learn syntax emphasizes readability and therefore reduces the cost of program maintenance."

Python is a general purpose programming language used for a huge variety of purposes. It's user community is growing rapidly! (https://stackoverflow.blog/2017/09/06/incredible-growth-python/)

Difference between R and Python? (Simplified)

  • They are both open source programming languages
  • Python is general purpose while R is focused on statistics and data analysis
  • However, R has grown hugely and has become much more wide ranging
  • You can also do stats with Python. Many packages available
    • NumPy
    • SciPy
    • Pandas

A brief history

Let's Get to It (hopefully everyone is done installing)

  • We are using Anaconda/Spyder today as it seems to be widely used throughout UVA. Adapted for data scientists
  • Spyder is a Programming IDE (Integrated Development Environment)
    • text editor
    • variable explorer
    • console
    • control icons

Strings

  • A string is a 'string' of characters
    • 'apple' # letters
    • 'blue42' # letters and numbers
    • 'i am the very model of a modern major general' # spaces are fine
    • '7 hills' # it can even start with a number

Comments

We also introduce comments here, the computer will ignore everything after the '#' symbol. There are other forms but we'll see them later on.

Variables

You can "save" things as variables. For those curious as to what's going on under the hood...in python a variable is actually just a pointer to the location in memory where the object lives.

  • a = 'apple'

    • a is the variable
    • = is the assignment operator
    • 'apple' (a string) is the object assigned to a
  • Important Note: the assignment operator is not like an equals sign

    • a=5
    • a=7
      • totally works, a was just reassigned to point to 7

Error Messages

  • Tell you when (and hopefully where) your code breaks.
  • Some are more readable and helpful than others
  • Read them from the bottom up

Functions

  • print(a) # this function will show us what a points to
  • we know that print is a function because there is no space between print and the "("
  • format of a function: name(arguments)
  • we say we "call" a function
  • this is super important in python the way to spot a function is no space before a "(" and a letter or number
    • python built-in functions
    • print(...)
    • type(...)
    • pow(...)
    • in an equation you may see 5*(2+3), you won't seet 5(2+3) (try it and see what happens)

Indexing

  • for objects with an order you can access individual elements
  • indexing
  • you can also pull out slices
    • syntax [X:Y]
      • starting at X
      • upto but not including Y

Lists

  • represented like functions but with [...]
  • there is an order to the items
  • the items can be of any type

Dictionary

  • represented like lits but with {...}
  • there is no order to items
  • items contain two pieces: a key and a value represented key:value and the key must be a string

loops - used when you want to repeat code

  • for loop

    • for X in Y: << code >>
      • X is a new variable created on the spot
      • Y is some preexisting iterable
      • << code >> is a block of code you want to repeat
      • eg: for x in range(10): print(x)
  • while loop

    • while Z: << code >>
      • Z is a boolean
      • << code >> is a block of code you want to repeat
      • eg: while i<10: print i; i+=1

if statements

  • example
    • if X: << code A >>
    • else: << code B >>
      • X is a boolean
      • << code A >> is some code
      • << code B >> is some code, could be the same

Import

This is an important topic

Mutablility

  • Some data types can be changed, others can't
  • Many reasons for this, a big one is performance
    • Mutable data types (such as lists) are costly to CPU processingn power
    • Immutable data types (like arrays) take less memory and processing power

Scripting vs Programming

It's a matter of modularity. Programs are designed to be modular and work with other programs. Scripts are designed to be single use.

How to Help Yourself and Learn More

Learning Resources

Self Help via the Internet

  • ChatGPT

    • ChapGPT has quickly made huge changes to the programming landscape. It is a hugely powerful tool If you use it the right way!. I think it is a somewhat slippery slope of how to advise new programmers to use ChatGPT (or other AI tools) so I will refer to some best practices. My personal opinion is that you should use AI minimally when you are starting. When you have a better grasp of basic fundamentals, then you can include AI and greatly increase your speed. Never accept ChatGPT code verbatim! Always double check it before including it in your workflows.
    • How to Effectively Learn to Program w/ ChatGPT
    • Corey Schafer's "How to use ChatGPT"
  • Google

    • Ex: "How to make dictionary python"
    • Ex: "python decorators"
  • Stack Overflow

    • A question/answer site for programming questions (actually, not just programming any more)
    • Not only python
    • DO NOT just ask questions, do your research first!
      • Odds are very high someone has already asked your question, especially as a novice
  • Youtube

  • Practice Python

    • Coding challenges for programmers of all levels
  • Python Tutor

    • Visualize what your code is doing step-by-step
    • Has limitations once you start importing libraries

About

uva library workshop on introduction to python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%