Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Exam Review 2024 May 18
- # Do those LABS
- # Ch 2-14... all Labs!
- # Ch 21-32 just ADDITIONAL LABS, but important practice!
- # get to know the Prac Tests, Ch 33 and 34... more than the Pre
- # Use Submit Mode and get them to 100%!!!
- # PAY ATTENTION to the unit tests!
- # ... then UNIT TEST more! Unit test, unit test, unit test!
- # When you've gotten the Ch 33-34 Prac Tests to 100, go back and do each again.
- # This time, try to think of 2-3 more unit tests that could be run on each question.
- # Comp 1: Basic syntax and knowledge: operators, data types, etc
- # Comp 2: Control Flow
- # Comp 3: Modules and Files
- # Comp 1: Basic syntax and knowledge: operators, data types, etc
- # Data Types/Classes
- # int
- # float
- # bool # True, False
- # str # ""
- # list # [ ]
- # dict # {key: value}
- # tuple # ( ) immutable, Python sees a, b, c as (a,b,c) --> return x,y --> return (x,y)
- # set # { } no duplicate values, no order --> no indices, can't slice it, can't sort it, can't reverse
- # range # range() container of consecutive numbers
- # file # open()... f.read(), f.readlines(), f.write()
- # # Operators
- # = # assigns a value
- # == # asking a question... result in Boolean value
- # +
- # -
- # *
- # /
- # % modulo... whole number remainder... "how many things didn't fit since the last even division?"
- # // floor division... last even division
- # <
- # >
- # <=
- # >=
- # += # x += 1 ... x = x + 1
- # -=
- # ** # similar to pow() and math.pow()
- # !=
- # # keywords
- # in # membership check... if x in myList
- # not # if not x in myList
- # and
- # or # any one True would cause the combo to be True... limit OR to 2-3 conditions
- # Comp 2
- # Control Flow! The how and when of our programs
- # IF statements... if, if/else, if/elif, if/elif/else
- # LOOPS
- # WHILE - a general purpose loop, an IF that repeats
- # FOR - repeating actions a known number of times --> once for everything in the container
- # FOR in Python is explicitly about looping over a container
- # # Check out my For Loops webinar in The Gotchas
- # for ___ in _someContainer_:
- # for item in myList:
- # for char in myStr:
- # for key in myDict: # loop var holds the key, myDict[key] holds the value
- # for n in range(0, someNum): # if you thought of range(5) as being [0, 1, 2, 3, 4]
- # for i in range(0, len(myList)):
- # for i, item in enumerate(myList):
- # FUNCTIONS
- # defining/writing a function vs calling
- # modular... a function has ONE specific job
- # print/output or return (or maybe something else)
- # parameters are special variables for holding stuff coming into the function
- # parameters vs arguments
- # def someFunction(x, y):
- # return x + y
- #
- # if __name__ == "__main__": # is this script the one that's running?
- # input1 = int(input())
- # input2 = int(input())
- # myNum = someFunction(input1, input2)
- # print(myNum)
- # See "tasks" in the last section of Ch 10, 11, 13, 14 for function writing practice
- # CodingBat also has good function-based Python questions:
- # https://codingbat.com/python
- # Built-In Functions
- # input()
- # print()
- # len()
- # min()
- # max()
- # sum()
- # str()
- # list()
- # dict()
- # set()
- # range()
- # enumerate()
- # round() # cousins math.ceil(), math.floor()
- # type() # myVar = "4.3", print(type(myVar).__name__) --> str
- # pow()
- # abs() # cousin math.fabs()
- # open()
- # help() # # help(str), help(str.isspace)
- # dir() # print(dir(str))
- # STRING
- # be able to refer by index, and to slice
- # myStr = "abcdef"
- # # mySlice[start:stop:step]
- # revStr = myStr[::-1]
- # print(revStr)
- # KNOW YOUR WHITESPACE
- # " " # space from spacebar
- # # a lot of other Unicode spaces
- # "\n" # new line return
- # "\t" # tab
- # "\r" # carriage return
- # unless otherwise stated... printed output should end a new line return...
- # 99% of the time it already does
- # print("hey") --> print("hey", end="\n")
- # we only need to change that when...
- #1 ... this specific says to do something else
- #2 ... you yourself overrode the end parameter of print() as the last thing you did... just call print() again after the loop
- # STRING METHODS
- # myStr.format() # "Stuff I want to put into this string like {} and {:.2f}".format(var1, var2)
- # myStr.strip() # input().strip()
- # myStr.split() # returns a list of smaller strings
- # myStr.join(listOfStrings) # " ".join(listOfStrings)
- # myStr.replace(subStr, newStr) # "remove" myStr = myStr.replace(subStr, "")
- # myStr.index(subStr) # return int index where found, or raise error
- # myStr.find(subStr) # return int index where found, or return -1
- # myStr.count(subStr) # returns int of times subStr occurs
- # case: lower(), upper(), title(), capitalize()
- # is/Boolean: islower(), isupper(), isspace(), isalpha(), isalnum(), isnumeric(), isdigit()
- # myStr.startswith(subStr), myStr.endswith(subStr)
- # LISTS
- # be able to refer by index and to slice
- # LIST METHODS
- # # +
- # myList.append(item)
- # myList.insert(i, item)
- # myList.extend(anotherList)
- # # -
- # myList.pop(i) # pop() by index
- # myList.remove(item) # remove() by value
- # myList.clear()
- # # other
- # myList.sort()
- # myList.reverse()
- # myList.count(item) # returns int num of occurrences
- # myList.index(item)
- # myList.copy()
- # DICT
- # use the key like an index []... then you don't really need DICT methods
- # myDict[key] # get the value for that key
- # myDict[key] = value # assigns new value to that key
- # membership check
- # if ___ in myDict: # looking at keys
- # DICT METHODS
- # myDict.keys() # all dict keys in one set-like object
- # myDict.values() # all dict values in one object
- # MODULES
- # math and csv
- # MATH MODULES
- # import math # FULL IMPORT
- # math.factorial(x)
- # math.ceil(x)
- # math.floor(x)
- # math.sqrt(x)
- # math.pow(x, y)
- # math.fabs(x)
- # math.pi
- # math.e
- #
- # # PARTIAL IMPORT
- # from math import ceil # just ceil() not math.ceil()
- # from math import sqrt, fabs # just sqrt(), fabs()
- # from math import * # factorial(), floor(), etc no math.
- #
- # # ALIAS IMPORT
- # import math as m # m.floor(), m.ceil()
- # FILES
- # modes: r, w, a
- # READ MODE
- # f = open(filename)
- with open("plain_text_file.txt", "r") as f:
- # f.read() # returns the whole file as one big string
- # f.readlines() # returns a list of strings, each line is one string
- # f.write(someStr) # writes a single str arg to file
- contents = f.readlines()
- # print(contents)
- # reading with csv module
- import csv
- # csv.reader()
- with open("mock_data.csv", "r") as f1: # mockaroo.com
- # for row in csv.reader(f1):
- contents = list(csv.reader(f1)) # csv.reader(f1, delimiter="\t") for .tsv
- # print(contents)
- # for row in contents[:10]:
- # print(row)
- # WRITE MODE
- # write out a new file where all the last names begin with "Mc"
- with open("output_data38.csv", "w") as f2:
- for row in contents:
- # ['5', 'Carling', 'Baude', 'cbaude4@liveinternet.ru', 'Male', '91.198.36.54']
- # last name is row[2]
- if row[2].startswith("Mc"):
- f2.write(",".join(row) + "\n")
- # APPEND MODE
- # reading it to see...
- # with open("append_to_this.txt") as f3:
- # print(f3.readlines())
- with open("append_to_this.txt", "a") as f3:
- f3.write("\nPippin")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement