From ff402ad3abe4fe460bf0a565ad2045183bd7dc49 Mon Sep 17 00:00:00 2001 From: Andreas Date: Sun, 26 Jun 2016 20:56:06 +0200 Subject: [PATCH] Add first files Adding the README.md and the cheatsheet.py files. So far no changes have been made. --- README.md | 4 + cheatsheet.py | 473 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 477 insertions(+) create mode 100644 README.md create mode 100644 cheatsheet.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..9bdfc9d --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +A repository containing various tipps for Python. + +The original code comes from this website: +* http://www.newthinktank.com/2014/11/python-programming/ diff --git a/cheatsheet.py b/cheatsheet.py new file mode 100644 index 0000000..88d5159 --- /dev/null +++ b/cheatsheet.py @@ -0,0 +1,473 @@ +# python_cheatsheet + +# import is used to make specialty functions available +# These are called modules +import random +import sys +import os + +# Hello world is just one line of code +# print() outputs data to the screen +print("Hello World") + +''' +This is a multi-line comment +''' + +# A variable is a place to store values +# Its name is like a label for that value +name = "Derek" +print(name) + +# A variable name can contain letters, numbers, or _ +# but can't start with a number + +# There are 5 data types Numbers, Strings, List, Tuple, Dictionary +# You can store any of them in the same variable + +name = 15 +print(name) + +# The arithmetic operators +, -, *, /, %, **, // +# ** Exponential calculation +# // Floor Division +print("5 + 2 =", 5+2) +print("5 - 2 =", 5-2) +print("5 * 2 =", 5*2) +print("5 / 2 =", 5/2) +print("5 % 2 =", 5%2) +print("5 ** 2 =", 5**2) +print("5 // 2 =", 5//2) + +# Order of Operation states * and / is performed before + and - + +print("1 + 2 - 3 * 2 =", 1 + 2 - 3 * 2) +print("(1 + 2 - 3) * 2 =", (1 + 2 - 3) * 2) + +# A string is a string of characters surrounded by " or ' +# If you must use a " or ' between the same quote escape it with \ +quote = "\"Always remember your unique," + +# A multi-line quote +multi_line_quote = ''' just +like everyone else" ''' + +print(quote + multi_line_quote) + +# To embed a string in output use %s +print("%s %s %s" % ('I like the quote', quote, multi_line_quote)) + +# To keep from printing newlines use end="" +print("I don't like ",end="") +print("newlines") + +# You can print a string multiple times with * +print('\n' * 5) + +# LISTS ------------- +# A list allows you to create a list of values and manipulate them +# Each value has an index with the first one starting at 0 + +grocery_list = ['Juice', 'Tomatoes', 'Potatoes', 'Bananas'] +print('The first item is', grocery_list[1]) + +# You can change the value stored in a list box +grocery_list[0] = "Green Juice" +print(grocery_list) + +# You can get a subset of the list with [min:up to but not including max] + +print(grocery_list[1:3]) + +# You can put any data type in a a list including a list +other_events = ['Wash Car', 'Pick up Kids', 'Cash Check'] +to_do_list = [other_events, grocery_list] + +print(to_do_list) + +# Get the second item in the second list (Boxes inside of boxes) +print(to_do_list[1][1]) + +# You add values using append +grocery_list.append('onions') +print(to_do_list) + +# Insert item at given index +grocery_list.insert(1, "Pickle") + +# Remove item from list +grocery_list.remove("Pickle") + +# Sorts items in list +grocery_list.sort() + +# Reverse sort items in list +grocery_list.reverse() + +# del deletes an item at specified index +del grocery_list[4] +print(to_do_list) + +# We can combine lists with a + +to_do_list = other_events + grocery_list +print(to_do_list) + +# Get length of list +print(len(to_do_list)) + +# Get the max item in list +print(max(to_do_list)) + +# Get the minimum item in list +print(min(to_do_list)) + +# TUPLES ------------- +# Values in a tuple can't change like lists + +pi_tuple = (3, 1, 4, 1, 5, 9) + +# Convert tuple into a list +new_tuple = list(pi_tuple) + +# Convert a list into a tuple +# new_list = tuple(grocery_list) + +# tuples also have len(tuple), min(tuple) and max(tuple) + +# DICTIONARY or MAP ------------- +# Made up of values with a unique key for each value +# Similar to lists, but you can't join dicts with a + + +super_villains = {'Fiddler' : 'Isaac Bowin', + 'Captain Cold' : 'Leonard Snart', + 'Weather Wizard' : 'Mark Mardon', + 'Mirror Master' : 'Sam Scudder', + 'Pied Piper' : 'Thomas Peterson'} + +print(super_villains['Captain Cold']) + +# Delete an entry +del super_villains['Fiddler'] +print(super_villains) + +# Replace a value +super_villains['Pied Piper'] = 'Hartley Rathaway' + +# Print the number of items in the dictionary +print(len(super_villains)) + +# Get the value for the passed key +print(super_villains.get("Pied Piper")) + +# Get a list of dictionary keys +print(super_villains.keys()) + +# Get a list of dictionary values +print(super_villains.values()) + +# CONDITIONALS ------------- +# The if, else and elif statements are used to perform different +# actions based off of conditions +# Comparison Operators : ==, !=, >, <, >=, <= + +# The if statement will execute code if a condition is met +# White space is used to group blocks of code in Python +# Use the same number of proceeding spaces for blocks of code + +age = 30 +if age > 16 : + print('You are old enough to drive') + +# Use an if statement if you want to execute different code regardless +# of whether the condition ws met or not + +if age > 16 : + print('You are old enough to drive') +else : + print('You are not old enough to drive') + +# If you want to check for multiple conditions use elif +# If the first matches it won't check other conditions that follow + +if age >= 21 : + print('You are old enough to drive a tractor trailer') +elif age >= 16: + print('You are old enough to drive a car') +else : + print('You are not old enough to drive') + +# You can combine conditions with logical operators +# Logical Operators : and, or, not + +if ((age >= 1) and (age <= 18)): + print("You get a birthday party") +elif (age == 21) or (age >= 65): + print("You get a birthday party") +elif not(age == 30): + print("You don't get a birthday party") +else: + print("You get a birthday party yeah") + +# FOR LOOPS ------------- +# Allows you to perform an action a set number of times +# Range performs the action 10 times 0 - 9 +for x in range(0, 10): + print(x , ' ', end="") + +print('\n') + +# You can use for loops to cycle through a list +grocery_list = ['Juice', 'Tomatoes', 'Potatoes', 'Bananas'] + +for y in grocery_list: + print(y) + +# You can also define a list of numbers to cycle through +for x in [2,4,6,8,10]: + print(x) + +# You can double up for loops to cycle through lists +num_list =[[1,2,3],[10,20,30],[100,200,300]]; + +for x in range(0,3): + for y in range(0,3): + print(num_list[x][y]) + +# WHILE LOOPS ------------- +# While loops are used when you don't know ahead of time how many +# times you'll have to loop +random_num = random.randrange(0,100) + +while (random_num != 15): + print(random_num) + random_num = random.randrange(0,100) + +# An iterator for a while loop is defined before the loop +i = 0; +while (i <= 20): + if(i%2 == 0): + print(i) + elif(i == 9): + # Forces the loop to end all together + break + else: + # Shorthand for i = i + 1 + i += 1 + # Skips to the next iteration of the loop + continue + + i += 1 + +# FUNCTIONS ------------- +# Functions allow you to reuse and write readable code +# Type def (define), function name and parameters it receives +# return is used to return something to the caller of the function +def addNumbers(fNum, sNum): + sumNum = fNum + sNum + return sumNum + +print(addNumbers(1, 4)) + +# Can't get the value of rNum because it was created in a function +# It is said to be out of scope +# print(sumNum) + +# If you define a variable outside of the function it works every place +newNum = 0; +def subNumbers(fNum, sNum): + newNum = fNum - sNum + return newNum + +print(subNumbers(1, 4)) + +# USER INPUT ------------- +print('What is your name?') + +# Stores everything typed up until ENTER +name = sys.stdin.readline() + +print('Hello', name) + +# STRINGS ------------- +# A string is a series of characters surrounded by ' or " +long_string = "I'll catch you if you fall - The Floor" + +# Retrieve the first 4 characters +print(long_string[0:4]) + +# Get the last 5 characters +print(long_string[-5:]) + +# Everything up to the last 5 characters +print(long_string[:-5]) + +# Concatenate part of a string to another +print(long_string[:4] + " be there") + +# String formatting +print("%c is my %s letter and my number %d number is %.5f" % ('X', 'favorite', 1, .14)) + +# Capitalizes the first letter +print(long_string.capitalize()) + +# Returns the index of the start of the string +# case sensitive +print(long_string.find("Floor")) + +# Returns true if all characters are letters ' isn't a letter +print(long_string.isalpha()) + +# Returns true if all characters are numbers +print(long_string.isalnum()) + +# Returns the string length +print(len(long_string)) + +# Replace the first word with the second (Add a number to replace more) +print(long_string.replace("Floor", "Ground")) + +# Remove white space from front and end +print(long_string.strip()) + +# Split a string into a list based on the delimiter you provide +quote_list = long_string.split(" ") +print(quote_list) + +# FILE I/O ------------- + +# Overwrite or create a file for writing +test_file = open("test.txt", "wb") + +# Get the file mode used +print(test_file.mode) + +# Get the files name +print(test_file.name) + +# Write text to a file with a newline +test_file.write(bytes("Write me to the file\n", 'UTF-8')) + +# Close the file +test_file.close() + +# Opens a file for reading and writing +test_file = open("test.txt", "r+") + +# Read text from the file +text_in_file = test_file.read() + +print(text_in_file) + +# Delete the file +os.remove("test.txt") + +# CLASSES AND OBJECTS ------------- +# The concept of OOP allows us to model real world things using code +# Every object has attributes (color, height, weight) which are object variables +# Every object has abilities (walk, talk, eat) which are object functions + +class Animal: + # None signifies the lack of a value + # You can make a variable private by starting it with __ + __name = None + __height = None + __weight = None + __sound = None + + # The constructor is called to set up or initialize an object + # self allows an object to refer to itself inside of the class + def __init__(self, name, height, weight, sound): + self.__name = name + self.__height = height + self.__weight = weight + self.__sound = sound + + def set_name(self, name): + self.__name = name + + def set_height(self, height): + self.__height = height + + def set_weight(self, height): + self.__height = height + + def set_sound(self, sound): + self.__sound = sound + + def get_name(self): + return self.__name + + def get_height(self): + return str(self.__height) + + def get_weight(self): + return str(self.__weight) + + def get_sound(self): + return self.__sound + + def get_type(self): + print("Animal") + + def toString(self): + return "{} is {} cm tall and {} kilograms and says {}".format(self.__name, self.__height, self.__weight, self.__sound) + +# How to create a Animal object +cat = Animal('Whiskers', 33, 10, 'Meow') + +print(cat.toString()) + +# You can't access this value directly because it is private +#print(cat.__name) + +# INHERITANCE ------------- +# You can inherit all of the variables and methods from another class + +class Dog(Animal): + __owner = None + + def __init__(self, name, height, weight, sound, owner): + self.__owner = owner + self.__animal_type = None + + # How to call the super class constructor + super(Dog, self).__init__(name, height, weight, sound) + + def set_owner(self, owner): + self.__owner = owner + + def get_owner(self): + return self.__owner + + def get_type(self): + print ("Dog") + + # We can overwrite functions in the super class + def toString(self): + return "{} is {} cm tall and {} kilograms and says {}. His owner is {}".format(self.get_name(), self.get_height(), self.get_weight(), self.get_sound(), self.__owner) + + # You don't have to require attributes to be sent + # This allows for method overloading + def multiple_sounds(self, how_many=None): + if how_many is None: + print(self.get_sound) + else: + print(self.get_sound() * how_many) + +spot = Dog("Spot", 53, 27, "Ruff", "Derek") + +print(spot.toString()) + +# Polymorphism allows use to refer to objects as their super class +# and the correct functions are called automatically + +class AnimalTesting: + def get_type(self, animal): + animal.get_type() + +test_animals = AnimalTesting() + +test_animals.get_type(cat) +test_animals.get_type(spot) + +spot.multiple_sounds(4)