View gist:4ff04d07d550e5ca76b4cedb6528a748
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
course_list = [] | |
while True: | |
action = input("Enter 'A' to add a course\nEnter 'D' to drop a course\nEnter 'E' to exit\n Enter choice (A/D/E):") | |
action = action.upper() | |
if action == 'A': | |
again = 'Y' | |
while again == 'Y': | |
course_name = input("Which course would you like to add?:") |
View average.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class RollingAverage(object): | |
def __init__(self, values=(), start_sum=0, start_count=0): | |
self._sum = start_sum + sum(values) | |
self._count = start_count + len(values) | |
def append(self, value): | |
self._sum += value | |
self._count += 1 |
View gist:a32ad3de87487e4ee731625633f35aa0
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=== Sample2 class code === | |
Name: Sample | |
Filename: build_class.py | |
Argument count: 0 | |
Kw-only arguments: 0 | |
Number of locals: 0 | |
Stack size: 4 | |
Flags: 0x0 | |
Constants: | |
0: 'sample_2.<locals>.Sample' |
View build_class.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def sample_1(parent=object): | |
class Sample(parent): | |
def __init__(self, val=None): | |
self.value = val | |
return Sample | |
def sample_2(parent=object): |
View sibsampl output
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
maybe:python-sibilant siege$ sibsampl timeit --of 1000 --times 1000 | |
calculating fibonacci of 1000 | |
answer is 43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875 | |
maximum recursion depth exceeded in comparison | |
maximum recursion depth exceeded | |
fibonacci with TCR over 1000 loops -> 0.6279 seconds (0.26% runtime) | |
fibonacci with TCO over 1000 loops -> 0.9989 seconds (0.41% runtime) | |
fibonacci no TC over 1000 loops -> 0.0000 seconds (0.00% runtime) | |
fibonacci LRU cache over 1000 loops -> 0.0000 seconds (0.00% runtime) | |
fibonacci loop over 1000 loops -> 0.8034 seconds (0.33% runtime) |
View values_toys.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class values(object): | |
def __init__(self, *args, **kwds): | |
self.__args = args | |
self.__iter__ = args.__iter__ | |
self.__kwds = kwds | |
self.keys = kwds.keys |
View output
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
certainly:sample-project siege$ sibsampl timeit --fib 2000 --number 1000 | |
calculating fibonacci of 2000 | |
answer is 4224696333392304878706725602341482782579852840250681098010280137314308584370130707224123599639141511088446087538909603607640194711643596029271983312598737326253555802606991585915229492453904998722256795316982874482472992263901833716778060607011615497886719879858311468870876264597369086722884023654422295243347964480139515349562972087652656069529806499841977448720155612802665404554171717881930324025204312082516817125 | |
fibonacci memoized -> maximum recursion depth exceeded | |
fibonacci via loop over 1000 loops -> 0.9649 | |
fibonacci with TCO over 1000 loops -> 3.3678 | |
fibonacci with TCR over 1000 loops -> 0.6501 | |
certainly:sample-project siege$ sibsampl timeit --fib 300 --number 1000 | |
calculating fibonacci of 300 | |
answer is 222232244629420445529739893461909967206666939096499764990979600 |
View example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
maybe:python-sibilant siege$ sibilant | |
sibilant > (defimport mapbind) | |
sibilant > (define data (dict foo: 100 bar: 200 baz: 300 tacos: 'yum)) | |
sibilant > data | |
{'tacos': <symbol 'yum'>, 'foo': 100, 'bar': 200, 'baz': 300} | |
sibilant > (define-values (foo bar baz) (mapbind.mapbind data)) | |
sibilant > foo | |
100 | |
sibilant > bar | |
200 |
View bindings.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env python3 | |
# This is a Proof-Of-Concept, and only works in Python3. | |
# A Python2 port is almost certainly possible, haven't even tried. | |
from inspect import currentframe | |
from dis import get_instructions | |
View gist:ed947df0d8b843ff0e7f6018ae5d79de
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sibilant > $100 | |
NameError: name '$100' is not defined | |
sibilant > (set-macro-character "$" (lambda (stream c) `(dollars ,(read stream))) False) | |
sibilant > $100 | |
NameError: name 'dollars' is not defined | |
sibilant > '$100 | |
(dollars 100) | |
sibilant > (defun dollars (amt) (print "YOU FOUND" amt "DOLLARS!!")) |
NewerOlder