raspeball

tallord-telling

Apr 23rd, 2023
817
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.33 KB | None | 0 0
  1. ## Inspiration from Project Euler problem 17: https://projecteuler.net/problem=17 ##
  2. #
  3. #
  4. #
  5. # importing #
  6. import random
  7. #
  8. #
  9. #
  10. def SpellNumberBelowHundred(num):
  11.     # Fill and define dictionaries #
  12.     text_ones = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
  13.     ones = {t+1:n for t, n in enumerate(text_ones)}
  14.  
  15.     text_tens = ["twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"]
  16.     tens = {(t+2):n for t, n in enumerate(text_tens)}
  17.  
  18.     teens = ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"]
  19.  
  20.     # spell number #
  21.     # num has length 2 #
  22.     num = str(num)
  23.  
  24.     if len(num) > 1:
  25.         if num[0] == "1":
  26.             spell = teens[eval(num[1])]
  27.  
  28.         else:
  29.             if num[1] != "0":
  30.                 spell = tens[eval(num[0])] + ones[eval(num[1])]
  31.  
  32.             else:
  33.                 spell = tens[eval(num[0])]
  34.  
  35.     else:
  36.         spell = ones[eval(num)]
  37.  
  38.     return spell
  39. #
  40. #
  41.  
  42. def SpellNumberBelowThousand(num):
  43.     # num has length 3 #
  44.     #
  45.     # first take care of the whole hundreds #
  46.     if num % 100 == 0:
  47.         spell = SpellNumberBelowHundred(eval(str(num)[0])) + "hundred"
  48.  
  49.     else:
  50.         num = str(num)
  51.         # spell number #
  52.         if len(num) < 3:
  53.             spell = SpellNumberBelowHundred(eval(num))
  54.  
  55.         else:
  56.             spell = SpellNumberBelowHundred(eval(num[0])) + "hundredand"
  57.  
  58.             if num[1] == "0":
  59.                 spell += SpellNumberBelowHundred(eval(num[2]))
  60.             else:
  61.                 spell += SpellNumberBelowHundred(eval(num[1] + num[2]))
  62.  
  63.     return spell
  64. #
  65. #
  66. def SpellNumWordsCycle(start_word):
  67.    
  68.     start_length = len(start_word)
  69.     start_spell = SpellNumberBelowThousand(start_length)
  70.    
  71.     print(f"{start_word} - {start_length}")
  72.  
  73.     num_word = start_spell
  74.     num_word_len = len(num_word)
  75.     print(f"{num_word} - {num_word_len}")
  76.  
  77.     while num_word_len != 4:
  78.         num_word = SpellNumberBelowThousand(num_word_len)
  79.         num_word_len = len(num_word)
  80.         print(f"{num_word} - {num_word_len}")
  81.    
  82.     print("four - 4")
  83. #
  84. # main program#
  85. def main():
  86.     user_word = input("Skriv inn et ord: ")
  87.  
  88.     SpellNumWordsCycle(user_word)
  89. #
  90. #
  91. #
  92. # run program #
  93. if __name__ == '__main__':
  94.     main()
  95.  
Advertisement
Add Comment
Please, Sign In to add comment