Есть ли разница между «строкой» и «строкой» в Python? [Дубликат]

Попробуйте следующее:

StreamWriter file2 = new StreamWriter(@"c:\file.txt", true);
file2.WriteLine(someString);
file2.Close();
60
задан SilentGhost 26 July 2010 в 13:46
поделиться

6 ответов

Никакой :

2.4.1. Строка и литералы Байтов

... Без обиняков: Оба типа литералов могут быть включены в соответствие одинарным кавычкам (') или двойные кавычки ("). Они могут также быть включены в соответствие группам из трех одинарных или двойных кавычек (они обычно упоминаются как трижды заключенные в кавычки строки). Символ (\) обратной косой черты привык к символам ESC, которые иначе имеют особое значение, такое как новая строка, сама обратная косая черта или символ кавычки...

113
ответ дан gnat 27 July 2010 в 00:46
поделиться
  • 1
    +1: Это говорит все, что я хотел сказать, но didn' t хотят вписаться в комментарий. – Dennis Zickefoose 22 August 2010 в 09:14

Python является одним из нескольких (?) языков, где 'и "имеют идентичную функциональность. Выбор для меня обычно зависит от того, что внутри. Если я соберусь заключить в кавычки строку, которая имеет одинарные кавычки в нем, то я буду использовать двойные кавычки и стих визы, для сокращения необходимости к символам ESC в строке.

Примеры:

"this doesn't require escaping the single quote"
'she said "quoting is easy in python"'

Это документируется на странице "String Literals" документации Python:

38
ответ дан Bryan Oakley 27 July 2010 в 00:46
поделиться
  • 1
    +1 большое сообщение. Добавил бы Clojure как опция - совершенно другая парадигма языка от Java (функциональный, динамичный, параллельный, Lisp), но работает на платформе Java, настолько относительно легкой для человека Java понять среду, по крайней мере. – mikera 24 May 2012 в 13:32

На некоторых других языках метасимволы не интерпретируются при использовании одинарных кавычек. Возьмите этот пример в Ruby:

irb(main):001:0> puts "string1\nstring2"
string1
string2
=> nil
irb(main):002:0> puts 'string1\nstring2'
string1\nstring2
=> nil

В Python, если Вы хотите, чтобы строка была взята буквально, можно использовать необработанные строки (строка, которой предшествует 'r' символ):

>>> print 'string1\nstring2'
string1
string2
>>> print r'string1\nstring2'
string1\nstring2
8
ответ дан Bruno Gomes 27 July 2010 в 00:46
поделиться
  • 1
    Если Вы говорите так - программисты Java кажутся достаточно нормальными мне. – James K Polk 22 August 2010 в 06:19

Единственные и двойные заключенные в кавычки строки в Python идентичны. Единственная разница - то, что единственно заключенные в кавычки строки могут содержать незавершенные символы двойной кавычки, и наоборот. Например:

'a "quoted" word'
"another 'quoted' word"

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

можно заменить переменными в строке с помощью названный спецификаторами и местными жителями () встроенный:

name = 'John'
lastname = 'Smith'
print 'My name is %(name)s %(lastname)s' % locals()  # prints 'My name is John Smith'
3
ответ дан efotinis 27 July 2010 в 00:46
поделиться
  • 1
    хорошо, если Вы окружаете себя сумасшедшими людьми, I' m верный they' d кажутся нормальными также.;) я могу определенно распознать то, о чем говорит Jerry. Не входя, является ли Java на самом деле второразрядный язык, у программистов Java часто, кажется, есть некоторый комплекс неполноценности, как они чувствуют they' ре не " real" программисты до they' ve изучил C++. Где Python или Ruby или программист Haskell просто couldn' t заботятся меньше о языке примитива как C++, у программиста Java часто, кажется, есть чувство это they' ve взятый " простой способ out" и это это отражается плохо над ними. – jalf 22 August 2010 в 07:30

Существует 3 способа, которыми можно заключить строки в кавычки в Python: "представьте 'строку' в виде строки"" "" строковая строка", "" они все приводят к тому же результату.

0
ответ дан Vasil 27 July 2010 в 00:46
поделиться
  • 1
    Существуют сборщики "мусора" для C как сторонние библиотеки. – Donal Fellows 22 August 2010 в 23:10

Нет никакого различия в Python, и можно действительно использовать его в ваших интересах при генерации XML. Корректный синтаксис XML требует двойных кавычек вокруг значений атрибута, и на многих языках, таких как Java, это вынуждает Вас выйти из них при создании строки как это:

String HtmlInJava = "<body bgcolor=\"Pink\">"

, Но в Python, Вы просто используете другую кавычку и удостоверяетесь, что использовали кавычку конца соответствия как это:

html_in_python = '<body bgcolor="Pink">'

Довольно хороший ха? Можно также использовать три двойных кавычки, чтобы запустить и закончить многострочные строки, с EOL включал как это:

multiline_python_string = """
This is a multi-line Python string which contains line breaks in the 
resulting string variable, so this string has a '\n' after the word
'resulting' and the first word 'word'."""
0
ответ дан Steve Moyer 27 July 2010 в 00:46
поделиться
  • 1
    @Shawn - " Math.max.apply ( Математика ..." - you' ре, в настоящее время звоня Math.max с Вашим массивом как this и никакие аргументы. – Mark Kahn 15 December 2011 в 11:25
Другие вопросы по тегам:

Похожие вопросы: