2016-09-13 5 views
-1
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) 

ご覧のとおり、これは面倒です。Pありがとうございました。 基本的には、異なるインデックスを持つ3つの異なるfor-loopsを使用してそれらを印刷しようとしています。私はリストのスライスとリストのインデックス作成を試みましたが、List_of_numberstensの完全なリストとして10を掛け合わせることができます。Python 3の単語として1〜100の数字を印刷します

私がここでやろうとしていることは明らかです。

ご協力いただきありがとうございます。

+1

読む[num2words]で 'dict's – dawg

+0

ルックについて(https://pypi.python.org/pypi/num2words) – dawg

+0

:私はちょうど、より多くのループのための埋め込みループの仕組みを理解したいと思います。 – snuffles101

答えて

6

私はあなたが既に答えを受け入れたが、知っているあなたは、特にネストされたループ言及 - それは使用しません - あなたは、Pythonの反復についての素晴らしい何行方不明とi//10-2print(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") 

Try it online at repl.it

+0

これは私が好奇心を持っていたことです、私の質問とは違って、非常に明確かつ簡潔にありがとう:P。 – snuffles101

1

あなたは20-100件のケースを過度に複雑にしていると思います。 20〜100の数字は非常に規則的です。 (つまり、それらは<tens_place> <ones_place>の形式で表示されます)。

ネストされたループの代わりにループを1つだけ使用すると、コードを簡単に実行できます。さて、十位が何であるか、そして何が置かれているのかを理解するだけです。

10の位は10で整数除算を使用すると簡単に見つけることができます(リストは20から始まるので2を引いています)。

同様に、モジュロ演算子を10で使用すると、1つの場所を見つけることができます。 (リストは1で始まり0でないため、1を引いています)。

最後に、if文を使って1の場所が別個にある場合を扱います(そして、1の位の値を表示しません)。

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

for i in range(19): 
    print(List_of_numbers1to19[i]) 

for i in range(20, 100): 
    if i%10 == 0: #if multiple of ten only print tens place 
    print(List_of_numberstens[i//10-2]) #20/10-2 = 0, 30/10-2 = 1, ... 
    else: #if not, print tens and ones place 
    print(List_of_numberstens[i//10-2] + ' ' + List_of_numbers1to19[i%10-1]) 
+0

素晴らしい、ありがとう、私はものを複雑にする傾向があります.... – snuffles101

関連する問題