【发布时间】:2021-09-06 18:28:29
【问题描述】:
这是我的代码:
digit = input("Enter a number to convert to words: ")
units = {
1:"one", 2:"two", 3:"three", 4:"four", 5:"five", 6:"six", 7:"seven", 8:"eight", 9:"nine", 10:"ten", 11:"eleven", 12:"twelve", 13:"thirteen", 14:"fourteen", 15:"fifteen", 16:"sixteen", 17:"seventeen",
18:"eighteen",19:"nineteen"}
tens = {
20:"twenty", 30:"thirty", 40:"fourty", 50:"fifty", 60:"sixty", 70:"seventy",
80:"eight", 90:"ninety"}
hundred = { 100:"one hundred", 200:"two hundred"
}
def number_to_words(problem):
if len(digit) <= 2 and int(digit) in units.keys():
print(units[int(digit)])
elif len(digit) == 2:
split_number = []
for letters in digit:
split_number.append(letters)
if len(split_number) == 2:
first_letter = split_number[0] + '0'
second_letter = split_number[1]
for num in tens.keys():
first_letter = int(first_letter)
if first_letter == num:
global split_tens
split_tens = tens[first_letter]
for num in units.keys():
second_letter = int(second_letter)
if second_letter == num:
global split_unit
split_unit = units[second_letter]
print(split_tens,'-', split_unit)
if len(digit) == 3:
split_number = []
for letters in digit:
split_number.append(letters)
if len(split_number) == 3:
first_letter = split_number[0] + "00"
second_letter = split_number[1] + "0"
third_letter = split_number[2]
# print(first_letter, second_letter, third_letter)
for num in split_number:
first_letter = int(first_letter)
second_letter = int(second_letter)
# if split_number[1] == int(0):
# second_letter = "and"
third_letter = int(third_letter)
if first_letter == hundred.keys():
pass
if second_letter == tens.keys():
pass
if third_letter == units.keys():
pass
print(hundred[first_letter], "and", tens[second_letter], units[third_letter])
number_to_words(digit)
【问题讨论】:
-
请修剪您的代码,以便更容易找到您的问题。请按照以下指南创建minimal reproducible example。
标签: python dictionary if-statement numbers word