Comments (20)
Up for helping. Editing in process.
from python.
Thank you! Just in time for Erik to start working on today :)
from python.
Thanks for the help! We've updated the tags.
from python.
Exercise: word-count
Code
from collections import Counter
import re
def count_words(sentence):
return Counter(re.findall(r"([a-z\d]+(?:\'[a-z\d]+)?)", sentence.lower()))
Tags:
construct:dictionary
construct:from-import
construct:function
construct:import
construct:instantiation
construct:invocation
construct:parameter
construct:python-raw-string
construct:return
construct:string
paradigm:imperative
technique:regular-expression
uses:collections.Counter
uses:positional-argument
uses:positional-parameter
uses:re.findall
uses:str.lower
from python.
Exercise: acronym
Code
import re
def abbreviate(phrase):
new_str = []
last_char = None
for char in phrase:
if _is_letter(char) and (_not_letter(last_char) or _cap_follows_lower(char, last_char)):
new_str.append(char.upper())
last_char = char
return ''.join(new_str)
def _is_letter(char):
return re.search('\w', char)
def _not_letter(char):
return char is None or re.search(r'[\W]', char)
def _cap_follows_lower(char, last_char):
return re.search(r'[a-z]', last_char) and re.search(r'[A-Z]', char)
Tags:
construct:and
construct:assignment
construct:conditional
construct:definition
construct:for-loop
construct:function
construct:identity-comparison
construct:if-statement
construct:import
construct:invocation
construct:list
construct:literal
construct:logical-and
construct:logical-or
construct:loop
construct:parameter
construct:python-None
construct:return
construct:string
construct:variable
paradigm:functional
paradigm:imperative
technique:boolean-logic
technique:looping
technique:regular-expression
uses:identity-operator
uses:list.append
uses:def-keyword
uses:positional-arguments
uses:positional-parameters
uses:python-None
uses:python-raw-string
uses:re.search
uses:str.join
uses:str.upper
from python.
Exercise: scrabble-score
Code
_letter_scores = (
('AEIOULNRST', 1),
('DG', 2),
('BCMP', 3),
('FHVWY', 4),
('K', 5),
('JX', 8),
('QZ', 10)
)
SCORES = {}
for letters, score in _letter_scores:
SCORES.update(dict.fromkeys(letters, score))
def score(word):
try:
return sum(SCORES[c] for c in word.upper())
except KeyError:
return 0
Tags:
construct:assignment
construct:call
construct:constant
construct:dict
construct:except
construct:for-loop
construct:function
construct:generator-expression
construct:indexing
construct:int
construct:invocation
construct:literal
construct:nested-dict
construct:nested-tuple
construct:parameter
construct:return
construct:string
construct:try
construct:tuple
construct:unpacking
construct:variable
paradigm:declarative
paradigm:functional
paradigm:imperative
technique: laziness
technique:error-handling
technique:exceptions
technique:generators
technique:looping
uses:bracket-notation
uses:builtins
uses:dict.fromkeys
uses:dict.update
uses:dot-notation
uses:generator-iterator
uses:global-variables
uses:positional-arguments
uses:positional-parameters
uses:str.upper
uses:try-except
from python.
Exercise: sublist
Code
EQUAL = 0
SUBLIST = 1
SUPERLIST = 2
UNEQUAL = 3
def list_in_list(little, big):
# Find little list in big list
n = len(little)
sublists = (big[i:i+n] for i in range(0, len(big)))
return little in sublists
def check_lists(list1, list2):
if list1 == list2:
return EQUAL
if len(list1) > len(list2):
return SUPERLIST if list_in_list(list2, list1) else UNEQUAL
if len(list1) < len(list2):
return SUBLIST if list_in_list(list1, list2) else UNEQUAL
return UNEQUAL
Tags:
construct:assignment
construct:boolean
construct:call
construct:comment
construct:comparison
construct:constant
construct:definition
construct:function
construct:generator-expression
construct:if-statement
construct:indexing
construct:int
construct:integral-number
construct:invocation
construct:list
construct:membership-test
construct:number
construct:parameter
construct:return
construct:slice
construct:ternary
construct:value-comparison
construct:variable
paradigm:functional
paradigm:imperative
paradigm:reflective
technique:laziness
uses:bracket-notation
uses:builtins
uses:generator-iterator
uses:len
uses:list
uses:list-slicing
uses:positional-arguments
uses:positional-parameters
uses:range
uses:slice-notation
from python.
Exercise: alphametics
Code
from itertools import chain, repeat, permutations
from string import digits
BASETRANS = str.maketrans('+=', ' ')
def solve(puzzle):
*left_hand, right_hand = words = puzzle.translate(BASETRANS).split()
letters = ''.join(set(chain.from_iterable(words)))
nb_letters = len(letters)
if nb_letters > 10:
return dict()
first_letters = set(ord(w[0]) for w in words)
possible_numbers = permutations(digits, nb_letters)
for l, nums in zip(repeat(letters), possible_numbers):
table = str.maketrans(l, ''.join(nums))
# if first_letters & set(k for k, v in table.items() if v == 48):
# continue
if 48 in set(v for k, v in table.items() if k in first_letters):
continue
left_hand_sum = sum(int(w.translate(table)) for w in left_hand)
right_hand_num = int(right_hand.translate(table))
if left_hand_sum == right_hand_num:
return {chr(k): v - 48 for k, v in table.items()}
return dict()
Tags:
construct:assignment
construct:call
construct:comment
construct:comparison
construct:constant
construct:continue
construct:definition
construct:dict
construct:dictionary-comprehension
construct:equality-comparison
construct:explicit-conversion
construct:for-loop
construct:from-import
construct:function
construct:generator
construct:generator-expression
construct:global-variable
construct:if-statement
construct:implicit-conversion
construct:import
construct:indexing
construct:infinite-iterator
construct:int
construct:integral-number
construct:invocation
construct:iterable
construct:iteration
construct:iterator
construct:list
construct:membership-test
construct:method
construct:multiple-assignment
construct:number
construct:parameter
construct:return
construct:set
construct:string
construct:subtract
construct:tuple
construct:unpacking
construct:value-comparison
construct:variable
paradigm:functional
paradigm:imperative
technique:higher-order-functions
technique:laziness
technique:looping
technique:type-conversion
uses:bracket-notation
uses:builtins
uses:chr
uses:def-keyword
uses:dict
uses:dict-comprehension
uses:dict.items
uses:dot-notation
uses:for-keyword
uses:generator-iterator
uses:itertools.chain.from_iterable
uses:itertools.permutations
uses:itertools.repeat
uses:len
uses:list
uses:ord
uses:positional-arguments
uses:positional-parameters
uses:set
uses:str.join
uses:str.maketrans
uses:str.split
uses:str.translate
uses:sum
uses:tuple
uses:unpacking
uses:zip
from python.
Exercise: collatz-conjecture
Code
def steps(num, count):
if num == 1:
return count
elif num %2 == 0:
return steps( num/2, count + 1)
else:
return steps( 1 + (num * 3), count + 1)
def collatz_steps(number):
if( number <=0 ):
return None
else:
return steps(number, 0)
Tags:
construct:add
construct:boolean
construct:call
construct:definition
construct:divide
construct:elif-statement
construct:else-statement
construct:equality-test
construct:float
construct:function
construct:if-statement
construct:implicit-conversion
construct:int
construct:integral-number
construct:invocation
construct:modulus
construct:multiply
construct:number
construct:parameter
construct:return
construct:value-comparison
construct:variable
paradigm:functional
technique:boolean-logic
technique:recursion
uses:positional-arguments
uses:positional-parameters
uses:python-None
from python.
Exercise: go-counting
Code
import numpy as np
from collections import defaultdict
NONE, WHITE, BLACK = 'none', 'W', 'B'
class Board:
def __init__(self, board):
self.board = np.array([list(x) for x in board])
self.moves = self.neighbours()
self.sets, self.terr_map= {}, {}
self.assign_territory()
def territory(self, x, y):
if min(x, y) < 0 or x > len(self.board) - 1 or y > len(self.board[0]) - 1:
raise ValueError(' ')
return (self.terr_map[(y, x)], self.sets[(y, x)])
def territories(self):
d = {WHITE: set(), BLACK: set(), NONE: set()}
for coords in self.terr_map:
d[self.terr_map[coords]] = d[self.terr_map[coords]].union(self.sets[coords])
return d
def assign_territory(self):
for coords in self.moves:
x = self.board[coords]
if x != ' ':
self.terr_map[coords], self.sets[coords] = 'none', set()
elif coords not in self.terr_map:
self.boundaries(coords)
def boundaries(self, coords):
edges, assigned, stack = set(), set(), [coords]
assigned.add(coords)
while stack:
current = stack.pop()
while self.moves[current]:
cds = self.moves[current].pop()
if self.board[cds] != ' ':
edges.add(self.board[cds])
else:
stack.append(cds)
assigned.add(cds)
appelation = 'none' if len(edges) != 1 else edges.pop()
for cds in assigned:
self.sets[cds] = {(y, x) for x, y in assigned}
self.terr_map[cds] = appelation
def neighbours(self):
c, d = ((1, 0), (-1, 0), (0, -1), (0, 1)), defaultdict(list)
if self.board.shape == (1, 1):
d[(0, 0)].append((0, 0))
for row, arr in enumerate(self.board):
for col, char in enumerate(arr):
for a, b in c:
a, b = a + row, b + col
if min(a, b) < 0 or a > len(self.board) - 1 or b > len(self.board[0]) - 1:
continue
d[(row, col)].append((a, b))
return d
Tags:
construct:add
construct:assignment
construct:boolean
construct:call
construct:class
construct:composition
construct:constant
construct:constructor
construct:continue
construct:definition
construct:dict
construct:for-loop
construct:from-import
construct:function
construct:global-variables
construct:if-statement
construct:import
construct:indexing
construct:initializer
construct:invocation
construct:iteration
construct:list
construct:list-comprehension
construct:literal
construct:logical-or
construct:membership-test
construct:method
construct:multiple-assignment
construct:nested-loop
construct:nested-tuple
construct:number
construct:parameter
construct:return
construct:set
construct:set-comprehension
construct:slice
construct:string
construct:subtract
construct:trinary
construct:tuple
construct:variable
construct:while-loop
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:boolean-logic
technique:exceptions
technique:higher-order-functions
technique:looping
uses:attributes
uses:bracket-notation
uses:builtins
uses:class-keyword
uses:collections.defaultdict
uses:comparison-chaining
uses:def-keyword
uses:dict.union
uses:dot-notation
uses:enumerate
uses:for-keyword
uses:len
uses:list.append
uses:list.pop
uses:loop-variables
uses:min
uses:multiple-assignment
uses:np.array
uses:raise-keyword
uses:set
uses:set.add
uses:set.pop
uses:str
uses:tuple
uses:unpacking
from python.
Exercise: complex-numbers
Code
from math import sin, cos, exp, sqrt
class ComplexNumber(object):
def __init__(self, real, imaginary):
self.real = real
self.imaginary = imaginary
def add(self, other):
return ComplexNumber(self.real + other.real,
self.imaginary + other.imaginary)
def mul(self, other):
return ComplexNumber(
self.real * other.real - self.imaginary * other.imaginary,
self.imaginary * other.real + self.real * other.imaginary)
def sub(self, other):
return ComplexNumber(self.real - other.real,
self.imaginary - other.imaginary)
def div(self, other):
denominator = float(other.real**2 + other.imaginary**2)
result_real = (
self.real * other.real + self.imaginary * other.imaginary
) / denominator
result_imaginary = (
self.imaginary * other.real - self.real * other.imaginary
) / denominator
return ComplexNumber(result_real, result_imaginary)
def abs(self):
return sqrt(self.mul(self.conjugate()).real)
def conjugate(self):
return ComplexNumber(self.real, -self.imaginary)
def exp(self):
real_exp = exp(self.real)
return ComplexNumber(real_exp * cos(self.imaginary),
real_exp * sin(self.imaginary))
Tags:
construct:add
construct:assignment
construct:attributes
construct:call
construct:class
construct:constructor
construct:definition
construct:divide
construct:explicit-conversion
construct:exponentiation
construct:float
construct:floating-point-number
construct:from-import
construct:imaginary-number
construct:implicit-conversion
construct:inheritance
construct:initialization
construct:instantiation
construct:int
construct:invocation
construct:method
construct:method-override
construct:multiply
construct:parameter
construct:return
construct:sqrt
construct:subtract
construct:variable
paradigm:imperative
paradigm:object-oriented
technique:higher-order-functions
uses:def-keyword
uses.math.cosin
uses.math.sin
uses:dot.notation
uses:math.exp
uses:math.mul
uses:math.sqrt
uses:positional-argument
uses:positional-parameter
from python.
Exercise: markdown
Code
import re
def md_if_headers(line):
if re.match('###### (.*)', line) is not None:
line = '<h6>' + line[7:] + '</h6>'
elif re.match('## (.*)', line) is not None:
line = '<h2>' + line[3:] + '</h2>'
elif re.match('# (.*)', line) is not None:
line = '<h1>' + line[2:] + '</h1>'
return line
def md_if_markup_or_list(in_list, line):
m = re.match(r'\* (.*)', line)
if m:
if not in_list:
in_list = True
is_bold = False
is_italic = False
curr = m.group(1)
m1 = re.match('(.*)__(.*)__(.*)', curr)
if m1:
curr = m1.group(1) + '<strong>' + \
m1.group(2) + '</strong>' + m1.group(3)
is_bold = True
m1 = re.match('(.*)_(.*)_(.*)', curr)
if m1:
curr = m1.group(1) + '<em>' + m1.group(2) + \
'</em>' + m1.group(3)
is_italic = True
if is_italic or is_bold:
line = '<ul><li>' + curr + '</li>'
else:
line = '<ul><li><p>' + curr + '</p></li>'
else:
is_bold = False
is_italic = False
curr = m.group(1)
m1 = re.match('(.*)__(.*)__(.*)', curr)
if m1:
curr = m1.group(1) + '<strong>' + \
m1.group(2) + '</strong>' + m1.group(3)
is_bold = True
m1 = re.match('(.*)_(.*)_(.*)', curr)
if m1:
curr = m1.group(1) + '<em>' + m1.group(2) + \
'</em>' + m1.group(3)
is_italic = True
if is_italic or is_bold:
line = '<li>' + curr + '</li>'
else:
line = '<li><p>' + curr + '</p></li>'
else:
if in_list:
line = '</ul>+i'
in_list = False
return in_list, line
def md_close_some(res, line):
m = re.match('<h|<ul|<p|<li', line)
if not m:
line = '<p>' + line + '</p>'
m = re.match('(.*)__(.*)__(.*)', line)
if m:
line = m.group(1) + '<strong>' + m.group(2) + '</strong>' + m.group(3)
m = re.match('(.*)_(.*)_(.*)', line)
if m:
line = m.group(1) + '<em>' + m.group(2) + '</em>' + m.group(3)
res += line
return res
def md_close_if_list(in_list, res):
if in_list:
res += '</ul>'
return res
def parse_markdown(markdown):
lines = markdown.split('\n')
res = ''
in_list = False
for line in lines:
line = md_if_headers(line)
in_list, line = md_if_markup_or_list(in_list, line)
res = md_close_some(res, line)
res = md_close_if_list(in_list, res)
return res
Tags:
consgruct:addition-assignment
construct:assignment
construct:boolean
construct:call
construct:comparison
construct:conditional
construct:definition
construct:elif
construct:else
construct:for-loop
construct:function
construct:identity-test
construct:if-statement
construct:implicit-conversion
construct:import
construct:indexing
construct:int
construct:invocation
construct:iteration
construct:list
construct:logical-or
construct:membership-test
construct:multiple-assignment
construct:multiply
construct:negation
construct:nested-if
construct:nested-conditional
construct:parameter
construct:python-raw-string
construct:regular-expression
construct:return
construct:slice
construct:string
construct:string-concatenation
construct:tuple
construct:variable
paradigm:imperative
techinique:regular-expressions
technique:boolean-logic
technique:looping
uses:bracket-notation
uses:def-keyword
uses:dot.notation
uses:not-keyword
uses:positional-argument
uses:positional-parameter
uses:python-None
uses:re
uses:re.match
uses:regex-groups
uses:slice-notation
uses:str.split
uses:string-concatenation
uses:string-slicing
uses:truthiness
from python.
Exercise: error-handling
Code
def handle_error_by_throwing_exception():
raise Exception('Opps')
def handle_error_by_returning_none(input_data):
try:
return int(input_data)
except Exception:
return None
def handle_error_by_returning_tuple(input_data):
result = handle_error_by_returning_none(input_data)
return (result is not None, result)
def filelike_objects_are_closed_on_exception(filelike_object):
with filelike_object as f:
f.do_something()
Tags:
construct:aliasing
construct:assignment
construct:boolean
construct:call
construct:context-manager
construct:definition
construct:except
construct:explicit-conversion
construct:function
construct:identity-test
construct:instantiation
construct:invocation
construct:iteration
construct:method
construct:negation
construct:parameter
construct:raise
construct:return
construct:string
construct:try
construct:tuple
construct:variable
paradigm:imperative
technique:exceptions
uses:aliasing
uses:context-manager
uses:def-keyword
uses:except-keyword
uses:dot-notation
uses:positional-arguments
uses:positional-parameters
uses:python-None
uses:try-keyword
uses:tuple
uses:with-keyword
uses:with-statement
from python.
Exercise: accumulate
Code
def accumulate(collection, operation):
return [operation(x) for x in collection]
Tags:
construct:call
construct:definition
construct:function
construct:iteration
construct:list
construct:list-comprehension
construct:literal
construct:parameter
construct:return
construct:return
paradigm:functional
uses:def-keyword
uses:list
uses:list-comprehension
uses:positional-argument
uses:positional-parameter
from python.
Exercise: trinary
Code
max_base = 10 + 26
def digit_to_decimal(digit, base):
"""Convert a 'digit' of the given 'base' into a number."""
if ('0' <= digit <= '9'):
result = ord(digit) - ord('0')
elif ('a' <= digit <= 'z'):
result = ord(digit) - ord('a') + 10
elif ('A' <= digit <= 'A'):
result = ord(digit) - ord('A') + 10
else:
raise ValueError("not a digit: {}".format(digit))
if result >= base:
raise ValueError("invalid digit {} for base {}".format(digit, base))
return result
def parse_integer(text, base):
"""Parse an 'text' representation of a number of given 'base'."""
if not 2 <= base <= max_base:
raise ValueError("invalid base: {}".format(base))
result = 0
for i, digit in enumerate(reversed(text)):
result += base ** i * digit_to_decimal(digit, base)
return result
def trinary(text):
"""Convert text representation of a trinary number to a number."""
try:
return parse_integer(text, 3)
except ValueError:
return 0
Tags:
construct:add
construct:addition-assignment
construct:assignment
construct:boolean
construct:call
construct:comment
construct:comparisons
construct:comparison-chaining
construct:conditional
construct:elif
construct:else
construct:error-handling
construct:except
construct:exponentiation
construct:for-loop
construct:format
construct:function
construct:global-variable
construct:if-statement
construct:instance
construct:int
construct:integral-number
construct:invocation
construct:multiply
construct:negation
construct:number
construct:parameter
construct:return
construct:string
construct:string-interpolation
construct:subtract
construct:try
construct:unpacking
construct:value-comparison
construct:variable
paradigm:imperative
technique:exceptions
technique:higher-order-functions
technique:looping
uses:ValueError
uses:builtins
uses:docstring
uses:enumerate
uses:ord
uses:positional-argument
uses:positional-parameter
uses:raise
uses:reversed
uses:str
uses:str.format
uses:unpacking
uses:value-comparison
from python.
Exercise: parallel-letter-frequency
Code
import multiprocessing
from collections import Counter
def _calculate(text):
return Counter([x for x in text.lower() if x.isalpha()])
def calculate(text_input):
pool = multiprocessing.Pool()
res = [pool.apply_async(_calculate, args=(x,)) for x in text_input]
result = Counter()
for x in res:
result = result + x.get()
return result
Tags:
construct:add
construct:call
construct:dict
construct:for-loop
construct:from-import
construct:if-statement
construct:import
construct:instance
construct:instantiation
construct:invocation
construct:iterable
construct:iteration
construct:list
construct:list-comprehension
construct:literal
construct:named-arguments
construct:parameter
construct:return
construct:string
construct:tuple
construct:variable
paradigm:imperative
paradigm:object-oriented
technique:async
technique:higher-order-functions
technique:multiprocessing
uses:collections.Counter
uses:dict.get
uses:dot-notation
uses:multiprocessing
uses:multiprocessing.Pool
construct:positional-arguments
construct:positional-parameter
uses:str.isalpha
uses:str.lower
from python.
Exercise: rest-api
Code
from collections import Counter
import json
class RestAPI(object):
def __init__(self, database=None):
self._users = {}
for user in database['users']:
owed_by = Counter(user['owed_by'])
owes = Counter(user['owes'])
owed_by.subtract(owes)
self._users[user['name']] = owed_by
def getuser(self, name):
user = self._users.get(name)
if user is None:
return False
item = {}
item['name'] = name
item['owes'] = {}
item['owed_by'] = {}
for k, v in dict(user).items():
if v > 0:
item['owed_by'][k] = v
else:
item['owes'][k] = v * -1
item['balance'] = sum(user.values())
return item
def get(self, url, payload=None):
if url == '/users':
if payload:
users = json.loads(payload)['users']
if not isinstance(users, list):
users = [users]
else:
users = list(self._users.keys())
return json.dumps(
{'users': [self.getuser(user) for user in users]}
)
def post(self, url, payload=None):
loaded = json.loads(payload)
if url == '/iou':
lender = self._users.get(loaded['lender'])
borrower = self._users.get(loaded['borrower'])
if (lender is None) or (borrower is None):
return False
lender[loaded['borrower']] += loaded['amount']
borrower[loaded['lender']] -= loaded['amount']
users = [loaded['lender'], loaded['borrower']]
result = \
{'users': [self.getuser(u) for u in self._users if u in users]}
elif url == '/add':
self._users[loaded['user']] = Counter()
result = self.getuser(loaded['user'])
return json.dumps(result)
Tags:
construct:add
construct:addition-assignment
construct:assignment
construct:attribute
construct:boolean
construct:calls
construct:class
construct:comparison
construct:constructor
construct:definition
construct:default-argument
construct:dict
construct:elif
construct:else
construct:equality-test
construct:for-loop
construct:from-import
construct:getter
construct:identity-test
construct:if-statement
construct:import
construct:inheritance
construct:initialization
construct:instantiation
construct:integer
construct:invocation
construct:list
construct:list-comprehension
construct:literal
construct:logical-or
construct:method
construct:multiply
construct:named-parameter
construct:nested-dict
construct:negation
construct:number
construct:parameter
construct:positional-parameter
construct:private-attribute
construct:return
construct:string
construct:subtract
construct:subtraction-assignment
construct:value-test
construct:value-comparision
construct:variable
paradigm:imperative
paradigm:object-oriented
technique:boolean-logic
technique:higher-order-functions
technique:looping
uses:Counter.subtract
uses:bracket-notation
uses:builtins
uses:collections.Counter
uses:def-keyword
uses:dict.get
uses:dict.items
uses:dict.keys
uses:dict.values
uses:dot-notation
uses:isintance
uses:json.dumps
uses:json.loads
uses:named-parameter
uses:default-argument
uses:positional-arguments
uses:positional-parameters
uses:python-None
uses:self-keyword
uses:sum
uses:unpacking
from python.
Exercise: affine-cipher
Code
ltn = dict(zip('abcdefghijklmnopqrstuvwxyz',range(26)))
ntl= dict(zip(ltn.values(),ltn.keys()))
def encode(plain_text, a, b):
for check in [2,13,26]:
if a % check == 0:
raise ValueError("not coprime")
plain_text_clean = ''.join([p if p.isalnum() else '' for p in plain_text.lower()])
raw = ''.join([ntl[(a*ltn[p]+b)%26] if p.isalpha() else p for p in plain_text_clean])
return ' '.join([raw[i:i+5] for i in range(0,len(raw),5)])
def decode(ciphered_text, a, b):
for check in [2,13,26]:
if a % check == 0:
raise ValueError("not coprime")
ciph = ''.join(ciphered_text.split(' '))
mmi = calc_mmi(a,26)
dec = ''.join([ntl[(mmi*(ltn[c]-b)) % 26] if c.isalpha() else c for c in ciph])
return dec
def calc_mmi(a,m=26):
n = 1
while (a * n) % m != 1:
n += 1
if n > 1000:
raise ValueError("not coprime or small")
return n
Tags:
construct:add
construct:addition-assignment
construct:assignment
construct:call
construct:comparison
construct:copy
construct:default-argument
construct:definition
construct:dict
construct:else
construct:equality-test
construct:for-loop
construct:function
construct:generator
construct:if-statement
construct:indexing
construct:int
construct:integral-number
construct:invocation
construct:iterable
construct:iteration
construct:list
construct:list-comprehension
construct:literal
construct:membership-test
construct:modulus
construct:multiply
construct:named-parameter
construct:negation
construct:number
construct:parameter
construct:raise
construct:return
construct:slice
construct:string
construct:subtract
construct:ternary
construct:tuple
construct:value-test
construct:variable
construct:while-loop
paradigm:imperative
technique:exceptions
technique:higher-order-functions
technique:laziness
technique:looping
uses:ValueError
uses:bracket-notation
uses:builtins
uses:def-keyword
uses:dict-constructor
uses:dict.keys
uses:dict.values
uses:len
uses:positional-parameters
uses:range
uses:slicing
uses:slice-notation
uses:str.isalpha
uses:str.join
uses:str.lower
uses:str.split
uses:ternary-expression
uses:zip
from python.
This is an automated comment
Hello π Next week we're going to start using the tagging work people are doing on these. If you've already completed the work, thank you! If you've not, but intend to this week, that's great! If you're not going to get round to doing it, and you've not yet posted a comment letting us know, could you please do so, so that we can find other people to do it. Thanks!
from python.
Ok. Think I'm done now. Probably missed some things, but will have to catch them later. π
from python.
Related Issues (20)
- hello HOT 2
- [Generator Concept + Plane Ticket Exercise]: Consider Adding list of common generator-iterators from the Std. Library
- [Draft] Cutting Zebra Puzzle HOT 1
- Plane Tickets yield expression link not working correctly in the ui HOT 1
- Clarify that the root is a natural number in square-root documentation HOT 2
- Instructions for python flatten: change null into None HOT 2
- Add additional test case to 'Matching Brackets' HOT 2
- Forth Exercise HOT 3
- [Little Sisterβs Essay] A typo in the exercise introduction HOT 3
- [Card Games] `approx_average_is_average` docstring summary needs improvement HOT 3
- [Inventory Management] `list_inventory` docstring summary needs improvement HOT 3
- [Mecha Munch Management]: Typos in hints for task #5 (`send_to_store`) HOT 2
- Include pylintrc and pytest.ini files for each exercise HOT 1
- Chandan HOT 1
- Money maker HOT 1
- Wrong param type HOT 1
- Improve Triangles testing HOT 1
- exercise pov source - 4clojure website is defunct HOT 1
- There are some grammatical errors in the instructions and introduction files. It will be great for the new comers to understand things easily HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from python.