Короткое (хотя и действительное) ответ просто «потому что язык грамматика не определен, чтобы разрешить это». Что касается того, почему это случай, трудно, если не невозможно быть уверенным, если вы не спросите, кто бы ни придумал эту часть грамматики, но я полагаю, что это связано с читабельностью, что является одной из целей Python1.
Зачем вам когда-нибудь писать что-то неявное? Просто разделите его на несколько строк:
x = ['a','b']
for i,j in enumerate(x):
print(i, ":", j)
Я бы сказал, что этот вариант намного яснее.
1 Из import this
: Число читаемости.
printf
метод класс PrintStream обеспечивает строка, форматирующая подобный эти printf
функция в C.
форматирование для printf
использование Formatter
синтаксис форматирования класса .
printf
метод может быть особенно полезным при отображении нескольких переменных в одной строке, которая была бы утомительной конкатенацией строк использования:
int a = 10;
int b = 20;
// Tedious string concatenation.
System.out.println("a: " + a + " b: " + b);
// Output using string formatting.
System.out.printf("a: %d b: %d\n", a, b);
кроме того, запись JAVA-приложений не обязательно означает писать приложения GUI, поэтому при записи консольных приложений, можно было бы использовать print
, println
, printf
и другие функции, которые произведут к System.out
.
Лучше, если необходимо управлять точностью чисел с плавающей запятой, сделать дополнение и т.д., System.out.print может распечатать все виды материала, но Вы не можете сделать мелкомодульного управления точности и дополняющий им.
Обычно в "реальном" приложении Вы записали бы в систему регистрации, такую как java.util. Вход или вход свободного городского населения, которые имеют способность зарегистрировать различные уровни многословия (т.е. режим "отладки", который был бы отключен в продуктивной среде). Однако для быстрой и грязной временной отладки иногда System.out.println () является самым легким способом сделать вещи (предполагающий, что Ваша среда выполнения выводит стандартный вывод где-нибудь, где можно считать его).
я должен также упомянуть, что можно всегда использовать "String.format ()" для создания строки с помощью формата, и список аргумента переменной (затем передают эту строку в метод входа или System.out.println). Это часто более хорошо, чем конкатенация набора переменных вместе в строку.
Если большинство реальных программ, вход используется. Сообщения отладки могут быть превращены включения - выключения с помощью регистрирующейся конфигурации. См. log4j как пример.