A NullReferenceException
бросается, когда мы пытаемся получить доступ к свойствам нулевого объекта или когда значение строки становится пустым, и мы пытаемся получить доступ к строковым методам.
Например:
string str = string.Empty;
str.ToLower(); // throw null reference exception
Public Class Person {
public string Name { get; set; }
}
Person objPerson;
objPerson.Name /// throw Null refernce Exception
его для вставки значений в строки, содержащие спецификации формата
string = "number is %d" % 1
или
string = "float is %.3f" % 3.1425
, это работает аналогично spintf в C
Вы можете вставить несколько значений двумя способами:
string = "number %d and float %f" % (1,3.1415)
string = "number %(mynum)d and float %(myfloat)f" % {'mynum':1,'myfloat':3.1415}
Для строк% является оператором форматирования . Он также отмечает начало спецификатора формата.
Оператор + конкатцирует строку в конце строки с правой стороны +. Оператор% заменит спецификатор формата форматированным способом в расположении спецификатора формата.
Для чисел% является модульным оператором. (Далее)
(В стороне, если вы этого не знали): Когда он не используется в строках, %
действует как функция по модулю
>>> 5 % 5
0
>>> 1 % 4
1
% - это оператор форматирования строки (также известный как оператор интерполяции ), см. http://docs.python.org/library/stdtypes .html # строка форматирование
По словам Джона Э. Грейсона в его книге «Программирование на Python и Tkinter», использование строкового форматирования, а не конкатенации, может повысить производительность не менее 25 процентов.
a = x + '' + y + '' + z
на 25 процентов медленнее, чем
a = '% s% s% s'% (x, y, z)
In Python 3, вы также можете сделать следующее:
a = '{} {} {}'. Format (x, y, z)