在Python 3中打印1-100中的数字作为单词

snu*_*101 -1 python numbers python-3.x

List_of_numbers1to19 = ['one', 'two', 'three', 'four', 'five', 'six', 'seven',
                   'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen',
                   'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen',
                   'nineteen']
List_of_numbers1to9 = List_of_numbers1to19[0:9]
List_of_numberstens = ['twenty', 'thirty', 'fourty', 'fifty', 'sixty', 'seventy',
                       'eighty', 'ninety']

for i in List_of_numbers1to19:
    print(i)
list_of_numbers21to99 = []
count = 19
tens_count = 0
for j in List_of_numberstens:
    for k in List_of_numbers1to9:
        if tens_count%10 == 0:
            #should print an iteration of List_of_numberstens
            tens_count +=1
        tens_count +=1
        print(j, k)
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这变得很乱:P很抱歉.基本上我正在尝试使用具有不同索引的三个不同的for循环来打印它们.我已经尝试过对列表进行切片并为列表编制索引,但我仍然将输出的数字乘以10作为完整列表List_of_numberstens.

我觉得我在这里要做的很清楚.

在此先感谢您的帮助!

Tes*_*ler 6

我知道你已经接受了一个答案,但你特别提到了嵌套循环 - 它没有使用 - 而且你错过了Python迭代的优点,而不需要那样做i//10-2以及print(j,k)将索引编入列表.

Python的for循环迭代直接在列表中的项目上运行,你可以打印它们,所以我回答:

digits = ['one', 'two',   'three', 'four', 'five', 
          'six', 'seven', 'eight', 'nine']

teens  = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 
          'sixteen', 'seventeen', 'eighteen', 'nineteen']

tens   = ['twenty', 'thirty', 'fourty', 'fifty', 
          'sixty', 'seventy', 'eighty', 'ninety']

for word in digits + teens:
    print(word)

for tens_word in tens:
    print(tens_word)        # e.g. twenty

    for digits_word in digits:
        print(tens_word, digits_word)   # e.g. twenty one

print("one hundred")
Run Code Online (Sandbox Code Playgroud)

在repl.it上在线试用