- ループとオブジェクト
while
を使用するだけで、ループを単純化できます。for
range()
- 関数を使用します。彼らはあなたの友達です。
- を使用してリストの内容を結合します
', '.join(your_list)
これが私が問題に取り組む方法です:
def lyrics(men):
verses = []
verses.append(str(len(men)) + ' men went to mow,')
verses.append('Went to mow a meadow,')
verses.append(', '.join(reversed(men)) + ' and his dog,')
return '\n'.join(verses)
num_men = int(raw_input('How many men will mow the meadow? '))
song = []
men = []
for man in range(1, num_men + 1):
men.append(str(man) + ' men')
song.append(lyrics(men))
print '\n\n'.join(song)
print
print 'your meadow has been mowed'
コードが実際の曲を(スペルアウトされた数字で)吐き出すようにするには、辞書を使用して数字を単語にマッピングします。
num_men = int(raw_input('How many men will mow the meadow? '))
def lyrics(men):
return '{num_men} went to mow,\nWent to mow a meadow,\n{men} and his dog'.format(
num_men=len(men),
men=', '.join(reversed(men)).capitalize()
)
song = []
men = []
numbers = {
1: 'one',
2: 'two',
3: 'three',
4: 'four',
5: 'five',
6: 'six',
7: 'seven',
8: 'eight',
9: 'nine'
}
for man in range(1, num_men + 1):
men.append('{} {}'.format(numbers[man], 'man' if man == 1 else 'men'))
song.append(lyrics(men))
print '\n\n'.join(song)
print
print 'your meadow has been mowed'