Новый способ печати ("Hello World!")

Python

Я считаю, что первая строка кода для многих студентов, начинающих работать с Python, — это print('Hello World!')
print — это первая функция Python, с которой сталкиваются новички, но до сих пор многие люди могут не до конца понимать ее использование.

print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

параметр:
objects– Множественное число, означающее, что несколько объектов могут быть выведены одновременно. При выводе нескольких объектов разделяйте их с помощью , .
sep– Используется для разделения нескольких объектов, значением по умолчанию является пробел.
end– Используется для установки того, чем закончить. Значением по умолчанию является символ новой строки \n, который мы можем заменить другими строками.
file– Файловый объект для записи.
flush– Кэшируется ли вывод или нет, обычно определяется файлом, но если аргумент ключевого слова flush имеет значение True, поток принудительно очищается.

В дополнение к обычно используемым параметрам объектов, остальные параметры должны быть относительно незнакомы всем, верно? Давайте посмотрим, какие трюки могут сыграть эти параметры.

По умолчанию функция печати печатает содержимое в стандартный поток вывода (например, sys.stdout), доступ к которому можно получить черезfileПараметры для настройки выходного потока.

with open('data.txt', 'w') as f:
    print('Hello World!', file=f)

Затем файл txt будет сохранен в рабочем каталоге.

Уведомление, вывод на печать фактически состоит из двух строк, вторая строка пуста. Это связано с тем, что когда мы вызываем print(obj) для печати объекта в Python, мы фактически вызываем sys.stdout.write(obj+'\n'), print выводит желаемое содержимое на консоль, а затем добавляет символ новой строки.

import sys
sys.stdout.write('Hello World!'+'\n')
print('Hello World!')
## 上面两行是等价的

Что делать, если вы не хотите, чтобы печать переносилась автоматически? Просто укажитеendпараметр пуст

print('Hello World!',end='')

flushЭтот параметр еще более интересен, функция print() поместит содержимое в память, и оно может не обновиться и не отобразиться на экране вовремя. После использования flush=True, после окончания печати, независимо от того, соблюдаете ли вы условия или нет, содержимое памяти сразу будет отображаться на экране, а кэш будет очищен.
Таким образом, вы можете добиться некоторых операций с эффектом полной силы.

такие как динамическийLoadingЭффект:

import time
print("Loading",end = '')
for i in range(10):
    print(".",end = '',flush = True,)
    time.sleep(0.2)
print('\n',"Hello World!")

Другой примерпечатная машинкаЭффект

import time
def printer(text, delay=0.3):
    for ch in text:
        print(ch, end='', flush=True)
        time.sleep(delay)

printer('Hello World!')

Ученики закончили школу? Можно ли давать Санлиан?