Preparing git repo for final project
This commit is contained in:
25
problems/pset4/adieu/adieu.py
Normal file
25
problems/pset4/adieu/adieu.py
Normal file
@@ -0,0 +1,25 @@
|
||||
def main():
|
||||
names = []
|
||||
while True:
|
||||
try:
|
||||
name = input("Name: ")
|
||||
names.append(name)
|
||||
except EOFError:
|
||||
break
|
||||
if len(names) == 0:
|
||||
return
|
||||
result = "Adieu, adieu, to "
|
||||
for n, name in enumerate(names):
|
||||
if n == 0:
|
||||
result += name
|
||||
elif n == 1 and len(names) == 2:
|
||||
result += f" and {name}"
|
||||
elif n == len(names) - 1:
|
||||
result += f", and {name}"
|
||||
else:
|
||||
result += f", {name}"
|
||||
print(result)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
24
problems/pset4/bitcoin/bitcoin.py
Normal file
24
problems/pset4/bitcoin/bitcoin.py
Normal file
@@ -0,0 +1,24 @@
|
||||
import json
|
||||
import requests
|
||||
import sys
|
||||
|
||||
|
||||
def main():
|
||||
try:
|
||||
n = float(sys.argv[1])
|
||||
except IndexError:
|
||||
sys.exit("Missing command-line argument")
|
||||
except (ValueError, TypeError):
|
||||
sys.exit("Command-line argument is not a number")
|
||||
try:
|
||||
response = requests.get("https://api.coindesk.com/v1/bpi/currentprice.json")
|
||||
data = response.json()
|
||||
conversion_rate = float(data['bpi']['USD']['rate'].replace(',', ''))
|
||||
except requests.RequestException:
|
||||
pass
|
||||
print(f"${n * conversion_rate:,.4f}")
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
10
problems/pset4/emojize/emojize.py
Normal file
10
problems/pset4/emojize/emojize.py
Normal file
@@ -0,0 +1,10 @@
|
||||
import emoji
|
||||
|
||||
|
||||
def main():
|
||||
input_text = input("Input: ").strip()
|
||||
print(emoji.emojize(emoji.emojize(input_text, language='alias'), language='en'))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
24
problems/pset4/figlet/figlet.py
Normal file
24
problems/pset4/figlet/figlet.py
Normal file
@@ -0,0 +1,24 @@
|
||||
import sys
|
||||
|
||||
from pyfiglet import Figlet
|
||||
|
||||
figlet = Figlet()
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) > 1:
|
||||
if len(sys.argv) != 3:
|
||||
sys.exit("This script takes 2 or no command-line arguments")
|
||||
if sys.argv[1] not in ('-f', '--font'):
|
||||
sys.exit(f"Unknown option `{sys.argv[1]}`")
|
||||
available_fonts = figlet.getFonts()
|
||||
font = sys.argv[2]
|
||||
if font not in available_fonts:
|
||||
sys.exit(f"Unknown font `{sys.argv[2]}`")
|
||||
figlet.setFont(font=font)
|
||||
input_text = input("Input: ")
|
||||
print(figlet.renderText(input_text))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
28
problems/pset4/game/game.py
Normal file
28
problems/pset4/game/game.py
Normal file
@@ -0,0 +1,28 @@
|
||||
import random
|
||||
|
||||
|
||||
def main():
|
||||
n = -1
|
||||
while n < 1:
|
||||
try:
|
||||
n = int(input("Level: "))
|
||||
except (TypeError, ValueError):
|
||||
continue
|
||||
random.seed()
|
||||
n_to_guess = random.randint(1, n)
|
||||
guess = -1
|
||||
while n_to_guess - guess != 0:
|
||||
try:
|
||||
guess = int(input("Guess: "))
|
||||
except (TypeError, ValueError):
|
||||
continue
|
||||
if guess == n_to_guess:
|
||||
print("Just right!")
|
||||
if guess < n_to_guess:
|
||||
print("Too small!")
|
||||
if guess > n_to_guess:
|
||||
print("Too large!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
43
problems/pset4/professor/professor.py
Normal file
43
problems/pset4/professor/professor.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import random
|
||||
|
||||
|
||||
def main():
|
||||
# random.seed() # This breaks check50 😠
|
||||
score = 0
|
||||
level = get_level()
|
||||
for _ in range(10):
|
||||
x = generate_integer(level)
|
||||
y = generate_integer(level)
|
||||
for _ in range(3):
|
||||
try:
|
||||
answer = int(input(f"{x} + {y} ="))
|
||||
except (ValueError, TypeError):
|
||||
answer = -1
|
||||
if answer == x + y:
|
||||
score += 1
|
||||
break
|
||||
else:
|
||||
print("EEE")
|
||||
else:
|
||||
print(f"{x} + {y} = {x + y}")
|
||||
print(f"Score: {score}")
|
||||
|
||||
|
||||
def get_level():
|
||||
level = 0
|
||||
while level not in (1, 2, 3):
|
||||
try:
|
||||
level = int(input("Level: "))
|
||||
except (ValueError, TypeError):
|
||||
level = 0
|
||||
return level
|
||||
|
||||
|
||||
def generate_integer(level):
|
||||
if level not in (1, 2, 3):
|
||||
raise ValueError
|
||||
return random.randint((10**(level - 1) if level > 1 else 0), 10**level - 1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Reference in New Issue
Block a user