如何在python中输入一个大字符串?

时间:2013-12-22 02:33:07

标签: python string

我正在一个需要比较大约900位数的字符串的程序中工作。 但每当我输入它们

a = '01111111111111100000000000111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111010101000000000000000000000000000000011111111111111111111111111111111111111100000000000000000000000000000000000000000000111111111111111111111111111100001010101000010100' 

Python只将第一行作为字符串,它表示错误。 我可以通过哪种方式输入它以便Python获取完整的字符串? 感谢

4 个答案:

答案 0 :(得分:5)

您的意思是您需要输入带换行符的多行字符串吗?

使用三重引语:

a = '''This is the first line
and a second one too
hello world!
'''

保留换行符,就像所有空格一样。

如果想要包含换行符,请在多个字符串周围使用括号:

a = (
    'This is one string, '
    'entirely without newlines, but it is one long '
    'string nonetheless')

Python编译器将这样的连续字符串(除了空格之外没有任何内容)组成一个长字符串对象。

但是,900位数字符串最好存储在单独的文件中,而不是源代码中:

with open('digitsfile.txt', 'r') as infh:
    a = infh.read().strip()  # read all data, remove newline at the end

答案 1 :(得分:0)

Python编译器连接相邻的字符串文字。您只需要告诉编译器文字是相邻的。

a = (
  '123'
  '456'
  '789'
)

print a

答案 2 :(得分:0)

您可以跳过\的新行:

>>> num = '12345' \
...       '67890'
>>> num
'1234567890'

答案 3 :(得分:0)

你确定字符串中没有回车符,这会导致错误。

尝试将字符串括在三引号中

s = """really long strrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrring"""

然后回复它

print s