Skip to content

Commit e5425ab

Browse files
J08KBethanyG
authored andcommitted
First files
1 parent 8399411 commit e5425ab

File tree

8 files changed

+51
-55
lines changed

8 files changed

+51
-55
lines changed

exercises/practice/matrix/.meta/example.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
class Matrix:
2-
def __init__(self, s):
3-
self.rows = [[int(n) for n in row.split()]
4-
for row in s.split('\n')]
2+
def __init__(self, matrix_string):
3+
self.rows = [[int(number) for number in row.split()]
4+
for row in matrix_string.split('\n')]
55
self.columns = [list(tup) for tup in zip(*self.rows)]
66

77
def row(self, index):

exercises/practice/minesweeper/.meta/example.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,26 @@ def annotate(minefield):
1515
high = min(index2 + 2, row_len + 2)
1616
counts = minefield[index1][low:high].count('*')
1717

18-
if(index1 > 0):
18+
if index1 > 0:
1919
counts += minefield[index1 - 1][low:high].count('*')
20-
if(index1 < col_len - 1):
20+
if index1 < col_len - 1:
2121
counts += minefield[index1 + 1][low:high].count('*')
2222
if counts == 0:
2323
continue
2424

2525
board[index1][index2] = str(counts)
26-
return ["".join(row) for row in board]
26+
return [''.join(row) for row in board]
2727

2828

2929
def verify_board(minefield):
3030
# Rows with different lengths
3131
row_len = len(minefield[0])
3232
if not all(len(row) == row_len for row in minefield):
33-
raise ValueError("The board is invalid with current input.")
33+
raise ValueError('The board is invalid with current input.')
3434

3535
# Unknown character in board
3636
character_set = set()
3737
for row in minefield:
3838
character_set.update(row)
3939
if character_set - set(' *'):
40-
raise ValueError("The board is invalid with current input.")
40+
raise ValueError('The board is invalid with current input.')

exercises/practice/nucleotide-count/.meta/example.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ def nucleotide_counts(strand):
1515

1616
def _validate(abbreviation):
1717
if abbreviation not in NUCLEOTIDES:
18-
raise ValueError('{} is not a nucleotide.'.format(abbreviation))
18+
raise ValueError(f'{abbreviation} is not a nucleotide.')

exercises/practice/ocr-numbers/.meta/example.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44

55
def split_ocr(ocr):
6-
return [[ocr[i][NUM_COLS * j:NUM_COLS * (j + 1)] for i in range(NUM_ROWS)]
7-
for j in range(len(ocr[0]) // NUM_COLS)]
6+
return [[ocr[idx][NUM_COLS * jam:NUM_COLS * (jam + 1)] for idx in range(NUM_ROWS)]
7+
for jam in range(len(ocr[0]) // NUM_COLS)]
88

99

1010
ALL = [' _ _ _ _ _ _ _ _ ',
@@ -23,21 +23,21 @@ def convert(input_grid):
2323
lines = [input_grid[start:end]
2424
for start, end in zip(split_indices[:-1], split_indices[1:])]
2525

26-
return ",".join(convert_one_line(line) for line in lines)
26+
return ','.join(convert_one_line(line) for line in lines)
2727

2828

2929
def convert_one_line(input_grid):
3030
if len(input_grid) != NUM_ROWS:
31-
raise ValueError("Number of input lines is not a multiple of four")
31+
raise ValueError('Number of input lines is not a multiple of four')
3232

3333
if len(input_grid[0]) % NUM_COLS:
34-
raise ValueError("Number of input columns is not a multiple of three")
34+
raise ValueError('Number of input columns is not a multiple of three')
3535

3636
numbers = split_ocr(input_grid)
3737
digits = ''
38-
for n in numbers:
38+
for num in numbers:
3939
try:
40-
digits += str(OCR_LIST.index(n))
40+
digits += str(OCR_LIST.index(num))
4141
except ValueError:
4242
digits += '?'
4343
return digits
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
def parse_octal(digits):
22
digits = _validate_octal(digits)
3-
return sum(int(digit) * 8 ** i
4-
for (i, digit) in enumerate(reversed(digits)))
3+
return sum(int(digit) * 8 ** idx
4+
for (idx, digit) in enumerate(reversed(digits)))
55

66

77
def _validate_octal(digits):
8-
for d in digits:
9-
if not '0' <= d < '8':
10-
raise ValueError("Invalid octal digit: " + d)
8+
for digit in digits:
9+
if not '0' <= digit < '8':
10+
raise ValueError("Invalid octal digit: " + digit)
1111
return digits

exercises/practice/palindrome-products/.meta/example.py

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@
33

44

55
def largest(min_factor, max_factor):
6-
return get_extreme_palindrome_with_factors(max_factor, min_factor, "largest")
6+
return get_extreme_palindrome_with_factors(max_factor, min_factor, 'largest')
77

88

99
def smallest(max_factor, min_factor):
10-
return get_extreme_palindrome_with_factors(max_factor, min_factor, "smallest")
10+
return get_extreme_palindrome_with_factors(max_factor, min_factor, 'smallest')
1111

1212

1313
def get_extreme_palindrome_with_factors(max_factor, min_factor, extreme):
14-
palindromes_found = palindromes(max_factor, min_factor,
15-
reverse=(extreme == "largest"))
14+
palindromes_found = palindromes(max_factor, min_factor, reverse=(extreme == 'largest'))
1615
factor_pairs = None
1716
for palindrome in palindromes_found:
1817
factor_pairs = ((factor, palindrome // factor)
@@ -30,12 +29,12 @@ def get_extreme_palindrome_with_factors(max_factor, min_factor, extreme):
3029

3130

3231
def reverse_num(number):
33-
reversed = 0
32+
reversed_nums = 0
3433
while number > 0:
35-
reversed *= 10
36-
reversed += (number % 10)
34+
reversed_nums *= 10
35+
reversed_nums += (number % 10)
3736
number //= 10
38-
return reversed
37+
return reversed_nums
3938

4039

4140
def num_digits(number):
@@ -50,31 +49,31 @@ def palindromes(max_factor, min_factor, reverse=False):
5049
most of the palindromes just to find the one it needs.
5150
"""
5251
if max_factor < min_factor:
53-
raise ValueError("min must be <= max")
52+
raise ValueError('min must be <= max')
5453

5554
minimum = min_factor ** 2
5655
maximum = max_factor ** 2
5756

58-
def gen_palindromes_of_length(num_digits, reverse=reverse):
57+
def gen_palindromes_of_length(digit_count, reverse=reverse):
5958
"""Generates all palindromes with `nd` number of digits that are
6059
within the desired range.
6160
Again, if `reverse` is True, the palindromes are generated in
6261
reverse order.
6362
"""
64-
even_nd = (num_digits % 2 == 0)
63+
even_nd = (digit_count % 2 == 0)
6564

66-
min_left_half = max(10 ** (int(ceil(num_digits / 2)) - 1),
67-
minimum // (10 ** (num_digits // 2)))
68-
max_left_half = min((10 ** int(ceil(num_digits / 2))) - 1,
69-
maximum // (10 ** (num_digits // 2)))
65+
min_left_half = max(10 ** (int(ceil(digit_count / 2)) - 1),
66+
minimum // (10 ** (digit_count // 2)))
67+
max_left_half = min((10 ** int(ceil(digit_count / 2))) - 1,
68+
maximum // (10 ** (digit_count // 2)))
7069

7170
current_left_half = min_left_half if not reverse else max_left_half
7271

7372
def make_palindrome(left_half, even_nd=False):
7473
right_half = (reverse_num(left_half)
7574
if even_nd
7675
else reverse_num(left_half // 10))
77-
return (left_half * (10 ** (num_digits // 2))) + right_half
76+
return (left_half * (10 ** (digit_count // 2))) + right_half
7877

7978
if not reverse:
8079
while current_left_half <= max_left_half:

exercises/practice/parallel-letter-frequency/.meta/example.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@
22
from collections import Counter
33
from threading import Lock, Thread
44
from time import sleep
5-
import sys
6-
if sys.version[0] == '2':
7-
from Queue import Queue
8-
else:
9-
from queue import Queue
5+
from queue import Queue
106

117
total_workers = 3 # Maximum number of threads chosen arbitrarily
128

@@ -30,8 +26,8 @@ def count_letters(queue_of_texts, letter_to_frequency, worker_id):
3026
sleep(worker_id + 1)
3127
line_input = queue_of_texts.get()
3228
if line_input is not None:
33-
letters_in_line = Counter([x for x in line_input.lower() if
34-
x.isalpha()])
29+
letters_in_line = Counter([idx for idx in line_input.lower() if
30+
idx.isalpha()])
3531
letter_to_frequency.add_counter(letters_in_line)
3632
queue_of_texts.task_done()
3733
if line_input is None:
@@ -40,17 +36,18 @@ def count_letters(queue_of_texts, letter_to_frequency, worker_id):
4036

4137
def calculate(list_of_texts):
4238
queue_of_texts = Queue()
43-
[queue_of_texts.put(line) for line in list_of_texts]
39+
for line in list_of_texts:
40+
queue_of_texts.put(line)
4441
letter_to_frequency = LetterCounter()
4542
threads = []
46-
for i in range(total_workers):
43+
for idx in range(total_workers):
4744
worker = Thread(target=count_letters, args=(queue_of_texts,
48-
letter_to_frequency, i))
45+
letter_to_frequency, idx))
4946
worker.start()
5047
threads.append(worker)
5148
queue_of_texts.join()
52-
for i in range(total_workers):
49+
for _ in range(total_workers):
5350
queue_of_texts.put(None)
54-
for t in threads:
55-
t.join()
51+
for thread in threads:
52+
thread.join()
5653
return letter_to_frequency.value

exercises/practice/pascals-triangle/.meta/example.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ def rows(row_count):
33
return None
44
elif row_count == 0:
55
return []
6-
r = []
6+
rows = []
77
for i in range(row_count):
8-
rn = [1]
8+
ronald = [1]
99
for j in range(i):
10-
rn.append(sum(r[-1][j:j+2]))
11-
r.append(rn)
12-
return r
10+
ronald.append(sum(rows[-1][j:j+2]))
11+
rows.append(ronald)
12+
return rows

0 commit comments

Comments
 (0)