2013-12-22 3 views
0

Я работаю в программе, которая должна сравнивать строки, которые имеют около 900 цифр. Но всякий раз, когда я вхожу ихКак ввести большую строку в python?

a = '01111111111111100000000000111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111010101000000000000000000000000000000011111111111111111111111111111111111111100000000000000000000000000000000000000000000111111111111111111111111111100001010101000010100' 

Python занимает первую строку в качестве строки, и это говорит об ошибке. В каком порядке я могу ввести его так, чтобы Python взял полную строку? Thanks

+1

Вы показали только одну строку. Что такое «первая строка» здесь? – thefourtheye

ответ

5

Вы имеете в виду, что вам нужно ввести многострочную строку с символами новой строки?

Использование тройной процитировать:

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

Newlines сохраняются, так как это все пробелы.

Если вы не хотите включить переводы строк, используйте круглые скобки вокруг нескольких строк:

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

Питон компилятор делает такие последовательные строки (без чего-либо, кроме пробела между ними) в один длинный строковый объект.

Однако 900-значного ряда, возможно, лучше всего хранить в отдельном файле, а не в исходном коде:

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

Как сохранить его в отдельном файле? – user3103718

+0

@ user3103718: вы могли бы использовать текстовый редактор для записи этой строки в отдельный файл, возможно? В любом случае я дал вам две строки для чтения такого файла. –

0

питон компилятор Объединяет соседние строки литералов. Вам просто нужно сообщить компилятору, что литералы смежны.

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

print a 
0

вы можете пропустить новую линию \:

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

Вы уверены, что нет возврата каретки в строку где-то, что вызовет ошибку.

Попробуйте заключая строку в тройных кавычках

s = """really long strrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrring""" 

, а затем повторить его обратно

print s 
Смежные вопросы