Да, я знаю, что эта маленькая проблема довольно слабая, но я пробую Python и решил, что это будет довольно просто.Мне трудно понять, как нативные типы данных взаимодействуют в Python.Здесь я пытаюсь объединить различные части текста в одну длинную строку, которая будет возвращена в качестве вывода.
Ошибка, которую я получаю при попытке запустить скрипт: «Ошибка типа: невозможно объединить объекты str и tuple».Я поместил все, что не было строкой, в функцию str (), но, очевидно, что-то все еще является «кортежем» (тип данных, который я никогда раньше не использовал).
Может кто-нибудь сказать мне, как получитькакой там кортеж находится в строке, так что все будет плавно соединяться?
(PS Я использовал переменную «Копировать», потому что я не был уверен, если при уменьшении другой переменной она будет связываться сfor loop construct. Не так ли?)
#99 bottles of beer on the wall lyrics
def BottlesOfBeerLyrics(NumOfBottlesOfBeer = 99):
BottlesOfBeer = NumOfBottlesOfBeer
Copy = BottlesOfBeer
Lyrics = ''
for i in range(Copy):
Lyrics += BottlesOfBeer, " bottles of beer on the wall, ", str(BottlesOfBeer), " bottles of beer. \n", \
"Take one down and pass it around, ", str(BottlesOfBeer - 1), " bottles of beer on the wall. \n"
if (BottlesOfBeer > 1):
Lyrics += "\n"
BottlesOfBeer -= 1
return Lyrics
print BottlesOfBeerLyrics(99)
Некоторые люди предлагали создать список и присоединиться к нему.Я немного отредактировал это, как я думаю, то, что вы, ребята, имели в виду, но не могли бы вы сказать мне, если это предпочтительный метод?
#99 bottles of beer on the wall lyrics - list method
def BottlesOfBeerLyrics(NumOfBottlesOfBeer = 99):
BottlesOfBeer = NumOfBottlesOfBeer
Copy = BottlesOfBeer
Lyrics = []
for i in range(Copy):
Lyrics += str(BottlesOfBeer) + " bottles of beer on the wall, " + str(BottlesOfBeer) + " bottles of beer. \n" + \
"Take one down and pass it around, " + str(BottlesOfBeer - 1) + " bottles of beer on the wall. \n"
if (BottlesOfBeer > 1):
Lyrics += "\n"
BottlesOfBeer -= 1
return "".join(Lyrics)
print BottlesOfBeerLyrics(99)