如何打印此字符串?

时间:2014-01-31 12:59:11

标签: python

您好我正在尝试打印此字符串,但我收到错误。 我的代码出了什么问题?

def main():
    for x in range (0, 100):
        T = 100 - x
        print (T+' bottles of beer on the wall,'+T+'bottles of beer.
        'Take one down, pass it around,'+T-1+' bottles of beer on the wall.')

main()

错误是:

EOL while scanning the string literal

2 个答案:

答案 0 :(得分:2)

有些事情是错的:

  • 你忘了关闭你的字符串文字;你的第一行不以报价结尾。
  • 您正在尝试连接字符串和整数。首先将整数转换为字符串。
  • 您没有在字符串中留出足够的空格,以便在数字周围留出适当的间距。
  • 您可能希望在Take one down之前输出中包含换行符。您必须包含明确的\n换行符或使用单独的print语句。

更好的是,使用逗号而不是连接来使用print语句内置功能:

print T, ' bottles of beer on the wall, ', T, ' bottles of beer.'
print 'Take one down, pass it around, ',  T - 1, ' bottles of beer on the wall.'

但最好的选择是使用字符串格式:

print '{0} bottles of beer on the wall, {0} bottles of beer.'.format(T)
print 'Take one down, pass it around, {0} bottles of beer on the wall.'.format(T - 1)

答案 1 :(得分:0)

最好使用format功能:

def main():
    for x in range (0, 100):
        T = 100 - x
        print('{0} bottles of beer on the wall, {0} bottles of beer. '
              'Take one down, pass it around, '
              '{1} bottles of beer on the wall.'.format(T, T-1))