Нет необходимости проверять состояние if
, просто используйте get
, чтобы получить соответствующее значение и вернуть -1
, если ключ отсутствует
contacts = {
"John" : 938477566,
"Jack" : 938377264,
"Jill" : 947662781
}
contacts.get('John',-1) # -1 will be returned if key is not found
Форматирование печати
name_to_search='John'
print("Contact details: %s %i" % (name_to_search, contacts.get(name_to_search,-1)))
[ 118] или
name_to_search='John'
print("Contact details: {} {}" .format(name_to_search, contacts.get(name_to_search,-1)))
Кастинг с Типом (переменная) может вызвать время выполнения exeception (RTE), в то время как "переменная, поскольку тип" возвратит пустой указатель вместо того, чтобы выдать исключение.
См. http://raghuonflex.wordpress.com/2007/07/27/casting-vs-the-as-operator/ для большего количества объяснений.
Строка (значение) создает новый Строковый объект из строкового литерала. Если аргументом конструктора не является строковый литерал, я предполагаю, что он называет .toString объекта аргумента () методом.
оцените, поскольку Строка будет просто пасовать назад значение, ЕСЛИ значением будет Строка или подкласс Строки. Это будет пасовать назад пустой указатель, если значение не будет иметь Строки типа.
Важная вещь отметить состоит в том, что Строка (val) создает новый объект, тогда как значение как Строка просто относится для оценки (и тесты для совместимости для Строкового представления).
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/String.html
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/operators.html#as