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 | |
# -*- coding: utf-8 -*- | |
# | |
# Hvis kvadratroten av et gitt tall er det samme som antall bokstaver i tallordet, | |
# kaller vi tallet for et kvadratrotord. | |
# | |
# Kjør scriptet med en nedre og øvre grense å teste på norsk eller engelsk, for eksempel slik: | |
# | |
# $ ./python3 finn_kvadratrotord.py 10 1000 norsk | |
# $ ./python3 finn_kvadratrotord.py 1000 1000000 engelsk | |
from num2words import num2words | |
import sys | |
def sjekk_tall(tall, tallord_språk): | |
# Gjør om tallet til tallord med num2words-modulen | |
tall_ord = num2words(tall, lang=tallord_språk) | |
# Vi ønsker bare å telle vanlige bokstaver i tallordet, ikke bindestrek og comma | |
gyldige_tegn = [character for character in tall_ord if character.isalpha()] | |
antall_bokstaver = len(''.join(gyldige_tegn)) | |
# Er det et kvadratord? | |
if int(tall) == antall_bokstaver ** 2: | |
print(f"{tall_ord} ({tall}) er et kvadratrotord fordi {antall_bokstaver} er kvadratroten av {tall}") | |
try: | |
nedre = int(sys.argv[1]) | |
øvre = int(sys.argv[2]) | |
språk = sys.argv[3] | |
if språk == 'norsk': | |
tallord_språk = 'no' | |
elif språk == 'engelsk': | |
tallord_språk = 'en' | |
except: | |
print("Du må gi en nedre og øvre grense å teste mot, og et språk, for eksempel slik: $ ./python3 finn_kvadratrotord.py 10 1000 norsk\n") | |
print(f"\nSjekker for kvadratrotord mellom {nedre} og {øvre} på {språk}:\n") | |
for i in range(nedre,øvre,1): | |
sjekk_tall(i, tallord_språk) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment