X Tutup
Skip to content

Commit 5de6e67

Browse files
committed
renamed solutions, reorg code
1 parent 29fb393 commit 5de6e67

File tree

7 files changed

+476
-0
lines changed

7 files changed

+476
-0
lines changed

12_ransom/solution1_for_loop.py

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/usr/bin/env python3
2+
"""Ransom note"""
3+
4+
import argparse
5+
import os
6+
import random
7+
8+
9+
# --------------------------------------------------
10+
def get_args():
11+
"""Get command-line arguments"""
12+
13+
parser = argparse.ArgumentParser(
14+
description='Ransom Note',
15+
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
16+
17+
parser.add_argument('text', metavar='text', help='Input text or file')
18+
19+
parser.add_argument('-s',
20+
'--seed',
21+
help='Random seed',
22+
metavar='int',
23+
type=int,
24+
default=None)
25+
26+
args = parser.parse_args()
27+
28+
if os.path.isfile(args.text):
29+
args.text = open(args.text).read().rstrip()
30+
31+
return args
32+
33+
34+
# --------------------------------------------------
35+
def main():
36+
"""Make a jazz noise here"""
37+
38+
args = get_args()
39+
random.seed(args.seed)
40+
41+
# Method 1: Iterate each character, add to list
42+
ransom = []
43+
for char in args.text:
44+
ransom.append(choose(char))
45+
46+
print(''.join(ransom))
47+
48+
49+
# --------------------------------------------------
50+
def choose(char):
51+
"""Randomly choose an upper or lowercase letter to return"""
52+
53+
return char.upper() if random.choice([0, 1]) else char.lower()
54+
55+
56+
# --------------------------------------------------
57+
def test_choose():
58+
"""Test choose"""
59+
60+
random.seed(1)
61+
assert choose('a') == 'a'
62+
assert choose('b') == 'b'
63+
assert choose('c') == 'C'
64+
assert choose('d') == 'd'
65+
random.seed(None)
66+
67+
68+
# --------------------------------------------------
69+
if __name__ == '__main__':
70+
main()
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/usr/bin/env python3
2+
"""Ransom note"""
3+
4+
import argparse
5+
import os
6+
import random
7+
8+
9+
# --------------------------------------------------
10+
def get_args():
11+
"""Get command-line arguments"""
12+
13+
parser = argparse.ArgumentParser(
14+
description='Ransom Note',
15+
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
16+
17+
parser.add_argument('text', metavar='text', help='Input text or file')
18+
19+
parser.add_argument('-s',
20+
'--seed',
21+
help='Random seed',
22+
metavar='int',
23+
type=int,
24+
default=None)
25+
26+
args = parser.parse_args()
27+
28+
if os.path.isfile(args.text):
29+
args.text = open(args.text).read().rstrip()
30+
31+
return args
32+
33+
34+
# --------------------------------------------------
35+
def main():
36+
"""Make a jazz noise here"""
37+
38+
args = get_args()
39+
random.seed(args.seed)
40+
41+
# Method 2: Iterate each character, add to a list
42+
ransom = []
43+
for char in args.text:
44+
ransom += choose(char)
45+
46+
print(''.join(ransom))
47+
48+
49+
# --------------------------------------------------
50+
def choose(char):
51+
"""Randomly choose an upper or lowercase letter to return"""
52+
53+
return char.upper() if random.choice([0, 1]) else char.lower()
54+
55+
56+
# --------------------------------------------------
57+
def test_choose():
58+
"""Test choose"""
59+
60+
random.seed(1)
61+
assert choose('a') == 'a'
62+
assert choose('b') == 'b'
63+
assert choose('c') == 'C'
64+
assert choose('d') == 'd'
65+
random.seed(None)
66+
67+
68+
# --------------------------------------------------
69+
if __name__ == '__main__':
70+
main()
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/usr/bin/env python3
2+
"""Ransom note"""
3+
4+
import argparse
5+
import os
6+
import random
7+
8+
9+
# --------------------------------------------------
10+
def get_args():
11+
"""Get command-line arguments"""
12+
13+
parser = argparse.ArgumentParser(
14+
description='Ransom Note',
15+
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
16+
17+
parser.add_argument('text', metavar='text', help='Input text or file')
18+
19+
parser.add_argument('-s',
20+
'--seed',
21+
help='Random seed',
22+
metavar='int',
23+
type=int,
24+
default=None)
25+
26+
args = parser.parse_args()
27+
28+
if os.path.isfile(args.text):
29+
args.text = open(args.text).read().rstrip()
30+
31+
return args
32+
33+
34+
# --------------------------------------------------
35+
def main():
36+
"""Make a jazz noise here"""
37+
38+
args = get_args()
39+
random.seed(args.seed)
40+
41+
# Method 3: Iterate each character, add to a str
42+
ransom = ''
43+
for char in args.text:
44+
ransom += choose(char)
45+
46+
print(''.join(ransom))
47+
48+
49+
# --------------------------------------------------
50+
def choose(char):
51+
"""Randomly choose an upper or lowercase letter to return"""
52+
53+
return char.upper() if random.choice([0, 1]) else char.lower()
54+
55+
56+
# --------------------------------------------------
57+
def test_choose():
58+
"""Test choose"""
59+
60+
random.seed(1)
61+
assert choose('a') == 'a'
62+
assert choose('b') == 'b'
63+
assert choose('c') == 'C'
64+
assert choose('d') == 'd'
65+
random.seed(None)
66+
67+
68+
# --------------------------------------------------
69+
if __name__ == '__main__':
70+
main()
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/usr/bin/env python3
2+
"""Ransom note"""
3+
4+
import argparse
5+
import os
6+
import random
7+
8+
9+
# --------------------------------------------------
10+
def get_args():
11+
"""Get command-line arguments"""
12+
13+
parser = argparse.ArgumentParser(
14+
description='Ransom Note',
15+
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
16+
17+
parser.add_argument('text', metavar='text', help='Input text or file')
18+
19+
parser.add_argument('-s',
20+
'--seed',
21+
help='Random seed',
22+
metavar='int',
23+
type=int,
24+
default=None)
25+
26+
args = parser.parse_args()
27+
28+
if os.path.isfile(args.text):
29+
args.text = open(args.text).read().rstrip()
30+
31+
return args
32+
33+
34+
# --------------------------------------------------
35+
def main():
36+
"""Make a jazz noise here"""
37+
38+
args = get_args()
39+
random.seed(args.seed)
40+
41+
# Method 4: List comprehension
42+
ransom = [choose(char) for char in args.text]
43+
print(''.join(ransom))
44+
45+
46+
# --------------------------------------------------
47+
def choose(char):
48+
"""Randomly choose an upper or lowercase letter to return"""
49+
50+
return char.upper() if random.choice([0, 1]) else char.lower()
51+
52+
53+
# --------------------------------------------------
54+
def test_choose():
55+
"""Test choose"""
56+
57+
random.seed(1)
58+
assert choose('a') == 'a'
59+
assert choose('b') == 'b'
60+
assert choose('c') == 'C'
61+
assert choose('d') == 'd'
62+
random.seed(None)
63+
64+
65+
# --------------------------------------------------
66+
if __name__ == '__main__':
67+
main()
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#!/usr/bin/env python3
2+
"""Ransom note"""
3+
4+
import argparse
5+
import os
6+
import random
7+
8+
9+
# --------------------------------------------------
10+
def get_args():
11+
"""Get command-line arguments"""
12+
13+
parser = argparse.ArgumentParser(
14+
description='Ransom Note',
15+
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
16+
17+
parser.add_argument('text', metavar='text', help='Input text or file')
18+
19+
parser.add_argument('-s',
20+
'--seed',
21+
help='Random seed',
22+
metavar='int',
23+
type=int,
24+
default=None)
25+
26+
args = parser.parse_args()
27+
28+
if os.path.isfile(args.text):
29+
args.text = open(args.text).read().rstrip()
30+
31+
return args
32+
33+
34+
# --------------------------------------------------
35+
def main():
36+
"""Make a jazz noise here"""
37+
38+
args = get_args()
39+
random.seed(args.seed)
40+
41+
# Method 5: List comprehension
42+
print(''.join([choose(char) for char in args.text]))
43+
44+
45+
# --------------------------------------------------
46+
def choose(char):
47+
"""Randomly choose an upper or lowercase letter to return"""
48+
49+
return char.upper() if random.choice([0, 1]) else char.lower()
50+
51+
52+
# --------------------------------------------------
53+
def test_choose():
54+
"""Test choose"""
55+
56+
random.seed(1)
57+
assert choose('a') == 'a'
58+
assert choose('b') == 'b'
59+
assert choose('c') == 'C'
60+
assert choose('d') == 'd'
61+
random.seed(None)
62+
63+
64+
# --------------------------------------------------
65+
if __name__ == '__main__':
66+
main()

0 commit comments

Comments
 (0)
X Tutup