Skip to content

update #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Oct 13, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions Nested-loops
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#Program to understand working of loops and nested loops in python by a simple pattern formation.
#suppose if user enters 4 then the following should be printed
#output -
# *

# * *

# * * *

# * * * *
# ignore all the '#' above in the output

a=int(input("enter ")) #we take an input from the users of how many lines the pattern should run.
for i in range(a): #executing a loop, here i's value will start from 0 till a-1.
t=((a-1)-i) #carefuly observing the pattern we get to understand that we need loop for spaces and one for * so first we define t that will contain values from a-1 to 0
for b in range(t): #creating a Nested loop for spaces
print(" ",end=' ')
k=i+1 #by observing the pattern above we can see that we need a variable that can print the number of * , and by logic the line number = number of * in that line
for c in range(k): # making a loop to print *
print("*"," ",end=' ')
print("\n")

# Hence loops work in a defined order to produce a specific result.
# hence in all , all the logical patterns are solved by nested loop concept and to be a master in that getting the right logic and sufficient number of nested loops is important.
# If possible try running this python code and try putting different input and see the output
37 changes: 37 additions & 0 deletions sampleMethodsInput.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Example input:
# 5
# 1 2 3 4 5
# Example Output: n = 5, data = [1, 2, 3, 4, 5]
n, data = input(), [int(i) for i in input().strip().split()]

# How to take input from multiple lines
# Will take input until sees a blank line (sentinel)
# Example input:
# 1 2 3
# 4 5
# Example Output: user_input = '1 2 3 4 5'
sentinel = ''
user_input = '\n'.join(iter(input, sentinel)).replace('\n', ' ')

# Example input:
# 1 2 3 4
# Example Output: var1 = 1, var2 = 2, var3 = 3, var4 = 4, such that var1, var2, var3, var4 are of type string
var1, var2, var3, var4 = input().split()

# Example input:
# 1 2 3 4
# Example Output: var1 = 1, var2 = 2, var3 = 3, var4 = 4, such that var1, var2, var3, var4 are of type int
var1, var2, var3, var4 = map(int, input().split())

# Example input:
# 1 2 3
# 1 2 3
# ...
# 1 2 3
while True:
try:

var1, var2, var3 = map(int, input().split())

except EOFError:
break
90 changes: 90 additions & 0 deletions sampleexceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# python sampleexceptions.py

# Minimal types of exceptions are used in this sample.
# For a list of built in python exceptions see https://docs.python.org/2/library/exceptions.html


# Expected Output:
#
# Basic exception raised.
# Basic exception with message: ERROR.
# Caught non basic exception: No module named badimport.
# Caught non basic exception: unsupported operand type(s) for +: 'int' and 'str'.
# Demonstrated how to handle multiple types of exceptions the same way.
# Demonstrated how to handle multiple types of exceptions the same way with a message: No module named badimport.
# Demonstrated how to handle exceptions differently.
# This should appear.
# Demonstrated how finally is run after exceptions.
# Demonstrated how else is run when no exceptions occur.
# Demonstrated how to use a basic custom exception: Custom Exception.


try:
raise Exception
except:
print "Basic exception raised."


try:
raise Exception("ERROR")
except Exception as e:
print "Basic exception with message: %s." % str(e)


try:
import badimport
except ImportError as e:
print "Caught non basic exception: %s." % str(e)


try:
test = 1 + '1'
except TypeError as e:
print "Caught non basic exception: %s." % str(e)


try:
import badimport
except ImportError, TypeError:
print "Demonstrated how to handle multiple types of exceptions the same way."


try:
import badimport
except (ImportError, TypeError) as e:
print "Demonstrated how to handle multiple types of exceptions the same way with a message: %s." % str(e)


try:
import badimport
except ImportError:
print "Demonstrated how to handle exceptions differently."
except TypeError:
print "This should not appear."


try:
import badimport
except ImportError:
print "This should appear."
finally:
print "Demonstrated how finally is run after exceptions."


try:
test = 1 + 1
except:
print "This should not appear."
else:
print "Demonstrated how else is run when no exceptions occur."


class CustomBasicError(Exception):
""" Custom Exception Type - Can be customised further """
pass


try:
raise CustomBasicError("Custom Exception")
except CustomBasicError as e:
print "Demonstrated how to use a basic custom exception: %s." % str(e)
47 changes: 47 additions & 0 deletions samplegenerators.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Generators hold values that are fetched lazily.
# Meaning that the entire collection isn't stored
# in memory all at once, but rather retrieved when
# needed.

# This is best used when dealing with a large
# collection of items. Such as rows returned from
# a database call or looping over a large csv.

# Generators are intelligent enough to handle these
# large collections without running out of memory.
# They dispose of variables in memory that are no
# longer used and do not worry about variables
# that are not yet needed.

# Here's the syntax for a generator. It's just a
# function! Take note of the yield keyword. yield
# basically means 'return', but lets Python know
# we'll be coming back for more.
def color_generator():
yield 'blue'
yield 'orange'
yield 'yellow'
yield 'purple'

# One way to use generators is by calling `next()`
# on it's instance
g = color_generator() # create the instance
next(g) # 'blue'
next(g) # 'orange'
next(g) # 'yellow'
next(g) # 'purple'

# However, once a generator is exhausted, it will
# not start back at the beginning.
next(g) # Raises StopIteration error.

# They're also iterables. No StopIteration errors
# are thrown with this method.
for color in color_generator():
print(color)

# 'blue'
# 'orange'
# 'yellow'
# 'purple'

16 changes: 16 additions & 0 deletions sampleimport.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,30 @@
# import command line argument reader 'argv' from the 'sys' python module
from sys import argv

# takes the two arguments after the 'python' command,
# and assigns to the variables 'script' and 'user_name'
script, user_name = argv

# assigns the string with an arrow and space to the variable 'prompt'
prompt = '> '

# user_name, the second argument, and 'sampleimport.py' replace %s in the order listed
print "Hi %s, I'm the %s script." % (user_name, script)
print "I'd like to ask you a few questions."

# replaces %s with the variable user_name and prints
print "Do you like me %s?" % user_name

# prints '> ' and allows user to input a value, assigns user input to the 'likes' variable
likes = raw_input(prompt)

# repeats the process above two more times
print "Where do you live %s?" % user_name
lives = raw_input(prompt)
print "What kind of computer do you have?"
computer = raw_input(prompt)

# takes the last three user inputs in order and inserts into the last print statement, replacing %r
print """
Alright, so you said %r about liking me.
You live in %r. Not sure where that is.
Expand Down
6 changes: 6 additions & 0 deletions sampleinput.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# import command line argument reader 'argv' from the 'sys' python module
from sys import argv

# takes the four arguments after the 'python' command,
# and assigns to the variables 's', 'f', 'ss', and 't'
s,f,ss,t=argv

# prints the four arguments on separate lines with text
print "the script is" , s
print "var1 1 is" , f
print "var 2 is" , ss
Expand Down
24 changes: 24 additions & 0 deletions samplelistcomprehension.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Hi! Welcome to this mini tutorial on using list comprehensions in Python!
# Check out samplelists.py if you need help with lists.

# Starting off with list comprehensions!
# Syntax used to make an ordinary list:
my_list = ["apple", "banana", "pear", "peach"]

# To concisely make a new list of elements, use a list comprehension:
list_comp = [num for num in range(10)] # Notice how square brackets are
# used to create a list.
print list_comp

# List comprehension syntax can be understood as so:
# [num for num in range(5)]
# Make a new num for each num in given range

# The first expression (before the "for" keyword) can be altered to satisfy a
# given condition over an iterable.
doubled_list_comp = [num * 2 for num in list_comp]
print doubled_list_comp

# Furthermore, "if" statements can be used in list comprehensions as well.
even_num_list_comp = [num for num in list_comp if num % 2 == 0]
print even_num_list_comp
13 changes: 13 additions & 0 deletions sampleloops.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,26 @@
# assigns numbers 1 through 3 to an array
arr=[1,2,3]

# assigns three names to an array
arrstr=["ashu" , "himu" , "piyu"]

# loops through each number from the number array, and prints the number
for num in arr:
print "numbers are %d" %num

# loops through each name from the name array, and prints the name
for name in arrstr:
print "names are %s" %name

# initializes an empty array
arrinput=[]

# asks the user for a input four times and pushes inputs into an array
for i in range(0,4):
print "enter element number %d" %i
number = raw_input("> ")
arrinput.append(number)

# loops through the input array and prints each input
for inp in arrinput:
print "elements are %r" %inp
29 changes: 29 additions & 0 deletions samplepermutation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# PowerSet.py
# Description: given an array of numbers, generates
# a power set

def findPowerSet(originalSet, index, currentSet, powerSet):
if (index >= len(originalSet)):
# add list to power set(convert list to tuple)
powerSet.append(currentSet)
return

# set where element was not added
notAddedSet = currentSet[:]

# append both sets
currentSet.append(originalSet[index])

# recursive call to other elements in originalSet
findPowerSet(originalSet, index + 1, currentSet, powerSet)
findPowerSet(originalSet, index + 1, notAddedSet, powerSet)


if __name__ == "__main__":
print("in main file")
testSet = [1, 2, 3]
powerSet = []

findPowerSet(testSet, 0, [], powerSet)

print("Final Set = " + str(powerSet))
12 changes: 12 additions & 0 deletions sampleprint.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,31 @@
# prints an empty space since comments are ignored
print #"Hello World!"

# prints the following strings and separate lines
print "Hello Again"
print "I like typing this."
print "This is fun."
print 'Yay! Printing.'
print "I'd much rather you 'not'."
print 'I "said" do not touch this.'

# prints the boolean value of this mathematical comparison
print 3 + 2 < 5 - 7

# assigning numerical values to variables
cars = 100
space_in_a_car = 4.0
drivers = 30
passengers = 90

# performing mathematical operations on the variables above,
# and assigning the answers to new variables
cars_not_driven = cars - drivers
cars_driven = drivers
carpool_capacity = cars_driven * space_in_a_car
average_passengers_per_car = passengers / cars_driven

# the new variables are printed on separate lines
print "We need to put about", average_passengers_per_car, "in each car."
print "We have", passengers, "to carpool today."
print "There will be", cars_not_driven, "empty cars today."
Expand Down
21 changes: 20 additions & 1 deletion samplewhile.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,33 @@

# SAMPLE CODE

# initialize the while iterator to 0
i = 0

# initialze empty numbers array
numbers = []

# keep running this while loop as long as 'i' is less than 6
while i < 6:

# prints the value of i at the beginning of the loop
print "At the top i is %d" % i

# adds the number i to the number array
numbers.append(i)

# increase the number i by 1
i = i + 1

# prints the current numbers array
print "Numbers now: ", numbers

# prints the value of i at the end of the loop
print "At the bottom i is %d" % i
print "The numbers: "

# prints the numbers of the numbers array,
# every value of i during the loop before it exited (0 through 5)
# since the while loop exited when i reached 6
print "The numbers: "
for num in numbers:
print num