Игнорирование символа новой строки при разделении многострочной строки - PullRequest
1 голос
/ 30 мая 2020

У меня есть строка, как показано ниже

s = '''printf("\nFloat value is %f \n", flt);
printf("Integer value is %d\n" , no);
printf("Double value is %lf \n", dbl);
printf("\nOctal value is %o \n", no);
printf("Hexadecimal value is %x \n", no);
return 0;'''

Я хочу разделить строку. Я использовал splitlines(), но он не дает ожидаемого результата. Он также разбивает строку, если она содержит \n в середине строки. Я хочу, чтобы я игнорировал символы новой строки в середине строк при разделении строки. Есть ли способ решить эту проблему без использования файлов.

for line in s.splitlines():
    #line = somfunction(line)
    print(line)

Вывод вышеуказанного кода

printf("
Float value is %f 
", flt);
printf("Integer value is %d
" , no);
printf("Double value is %lf 
", dbl);
printf("
Octal value is %o 
", no);
printf("Hexadecimal value is %x 
", no);
return 0;

Ожидаемый результат:

printf("\nFloat value is %f \n", flt);
printf("Integer value is %d\n" , no);
printf("Double value is %lf \n", dbl);
printf("\nOctal value is %o \n", no);
printf("Hexadecimal value is %x \n", no);
return 0;

Ответы [ 2 ]

1 голос
/ 30 мая 2020

Вы можете достичь желаемого результата, используя строковое необработанное представление в вашем s определении.

s = r'''printf("\nFloat value is %f \n", flt);
printf("Integer value is %d\n" , no);
printf("Double value is %lf \n", dbl);
printf("\nOctal value is %o \n", no);
printf("Hexadecimal value is %x \n", no);
return 0;'''

Обратите внимание на r в начале строки. В python это означает необработанную строку.

Здесь - это документация

0 голосов
/ 30 мая 2020

Попробуйте это

s = r'''printf("\nFloat value is %f \n", flt);
printf("Integer value is %d\n" , no);
printf("Double value is %lf \n", dbl);
printf("\nOctal value is %o \n", no);
printf("Hexadecimal value is %x \n", no);
return 0;'''

for line in s.splitlines():
    print(line)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...