Как поставить пробел в питоне при выводе
Перейти к содержимому

Как поставить пробел в питоне при выводе

  • автор:

Пробелы в выражениях и операторах языка Python

Однако при объединении аннотации аргумента со значением по умолчанию используйте пробелы вокруг знака ‘=’ :

# Правильно def munge(sep: AnyStr = None): . def munge(input: AnyStr, sep: AnyStr = None, limit=1000): . 
# Неправильно def munge(input: AnyStr=None): . def munge(input: AnyStr, limit = 1000): . 
# Правильно if foo == 'blah': do_blah_thing() do_one() do_two() do_three() 
# Неправильно if foo == 'blah': do_blah_thing() do_one(); do_two(); do_three() 
# Неправильно if foo == 'blah': do_blah_thing() for x in lst: total += x while t  10: t = delay() if foo == 'blah': do_blah_thing() else: do_non_blah_thing() try: something() finally: cleanup() do_one(); do_two(); do_three(long, argument, list, like, this) if foo == 'blah': one(); two(); three() 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Разметка кода Python, PEP 8
  • Пробелы в выражениях и операторах языка Python
  • Когда использовать запятые в коде на Python
  • Комментарии в коде языка Python
  • Соглашения об именах
  • Рекомендации по программированию на Python

ХОЧУ ПОМОЧЬ
ПРОЕКТУ

Вывод через пробел Python

Ума не приложу, как правильно вывести массив типа integer в виде строки через пробел? Есть варианты? Массив вида:

z = [1,2,3,4,5,6,7] 

Отслеживать
51.4k 87 87 золотых знаков 267 267 серебряных знаков 508 508 бронзовых знаков
задан 29 дек 2011 в 14:01
411 2 2 золотых знака 7 7 серебряных знаков 21 21 бронзовый знак

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

print " ".join(map(str, z)) 

Отслеживать
51.4k 87 87 золотых знаков 267 267 серебряных знаков 508 508 бронзовых знаков
ответ дан 29 дек 2011 в 14:03
Sergii Kozlov Sergii Kozlov
2,468 16 16 серебряных знаков 13 13 бронзовых знаков

for i in z: print(i, end = " ") 

Отслеживать
ответ дан 29 дек 2011 в 14:06
3,454 12 12 серебряных знаков 9 9 бронзовых знаков

print ' '.join(z) 

Отслеживать
ответ дан 29 дек 2011 в 14:09
3,028 13 13 серебряных знаков 14 14 бронзовых знаков

print ' '.join(str(v) for v in z) 

Отслеживать
ответ дан 8 янв 2012 в 9:18
49 2 2 бронзовых знака

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.29.8372

Как напечатать пробелы в Python?

В C++ используется \n , но что я использую в Python? Я не хочу использовать: print (» «) . Это не очень элегантно. Любая помощь будет оценена!

Justin Chiang 16 сен. 2012, в 23:52
Поделиться
Вы имеете в виду пробелы или разрывы строк?
BrenBarn 16 сен. 2012, в 21:02
\n — это новая строка в C ++. Не пространство
Tony The Lion 16 сен. 2012, в 21:03
Поделиться:

10 ответов

Вот короткий ответ

Это напечатает одно пустое пространство

print(x); 

Это напечатает 10 пробелов

print(10*x) 

Печать 10 белых пробелов между Hello & World

print("Hello"+10*x+"world"); 

RL-Perf 29 окт. 2015, в 22:45
Поделиться

Скобки не нужны. Кроме того, я лично считаю, что обозначение + является грязным, трудным для чтения, и его следует избегать. Я предпочитаю вместо этого использовать замену формата строки (% s). Я напечатал длинное объяснение / ответ ниже.

PyTis 25 янв. 2019, в 20:25

В одиночной print будет выводиться новая строка.

print 

В 3.x print есть функция, поэтому:

print() 

Ignacio Vazquez-Abrams 16 сен. 2012, в 22:39
Поделиться

Если вам нужно отделить определенные элементы от пробелов, вы можете сделать что-то вроде

print "hello", "there" 

Обратите внимание на запятую между «привет» и «там».

Если вы хотите напечатать новую строку (например, \n ), вы можете просто использовать print без каких-либо аргументов.

arshajii 16 сен. 2012, в 22:00
Поделиться

просто использование печати не похоже на вывод новой строки? или нельзя использовать как пустую строку?

Justin Chiang 16 сен. 2012, в 21:10

одна только print должна вывести новую строку, попробуйте выполнить это: print «hello» ; print ; print «world» , и сравните его с тем, что произойдет, если вы удалите среднюю print .

arshajii 16 сен. 2012, в 21:13

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

PyTis 25 янв. 2019, в 20:27
Показать ещё 1 комментарий

Любое из следующих действий будет работать:

print 'Hello\nWorld' print 'Hello' print 'World' 

Кроме того, если вы хотите напечатать пустую строку (не создавать новую строку), print или print() будут работать.

tkbx 16 сен. 2012, в 21:59
Поделиться

print («hello» + » * 50 + «world»)

Arvind Reddy 03 фев. 2018, в 12:21
Поделиться

Вы должны уделять больше внимания ответу, а не просто отбрасывать блок кода, который ОП или будущие читатели могут не понять.

zgue 03 фев. 2018, в 11:24

просто назначьте переменную () или » » , а затем, когда необходимо, тип

print(x, x, x, Hello World, x) 

или что-то типа того.

Надеюсь, это немного менее сложно 🙂

Piewashere 28 фев. 2017, в 00:23
Поделиться

Прежде всего, для перевода строки, самое простое, что нужно сделать — это создать отдельные операторы print, например:

print("Hello") print("World.") #the parentheses allow it to work in Python 2, or 3. 

Чтобы иметь разрыв строки и все еще только один оператор печати, просто используйте «\n» внутри, как показано ниже:

print("Hello\nWorld.") 

Ниже я объясняю пробелы, а не разрывы строк.

Я вижу здесь множество людей, использующих обозначение +, что лично мне кажется некрасивым. Пример того, что я считаю уродливым:

x=' '; print("Hello"+10*x+"world"); 

Приведенный выше пример в настоящее время, так как я набираю этот ответ с наибольшим количеством голосов. Программист явно приходит в Python из PHP как «;» синтаксис в конце каждой строки, ну просто не нужен. Единственная причина, по которой это не происходит из-за ошибки в Python, заключается в том, что точки с запятой МОЖЕТ использоваться в Python, на самом деле следует использовать только тогда, когда вы пытаетесь поместить две строки в одну, из эстетических соображений. Не следует размещать их в конце каждой строки в Python, так как это только увеличивает размер файла.

Лично я предпочитаю использовать обозначение% s. В Python 2.7, который я предпочитаю, вам не нужны скобки «(» и «)». Тем не менее, вы должны включить их в любом случае, чтобы ваш скрипт не пропускал ошибки в Python 3.x и работал в любом из них.

Допустим, вы хотите, чтобы ваше пространство было 8 пробелами, поэтому в Python я бы сделал следующее: 3.x

print("Hello", "World.", sep=' '*8, end="\n") # you don't need to specify end, if you don't want to, but I wanted you to know it was also an option #if you wanted to have an 8 space prefix, and did not wish to use tabs for some reason, you could do the following. print("%sHello World." % (' '*8)) 

Вышеуказанный метод будет работать и в Python 2.x, но вы не можете добавить аргументы «sep» и «end», это нужно сделать вручную в Python

Следовательно, чтобы иметь префикс из 8 пробелов с разделителем из 4 пробелов, синтаксис, который будет работать в Python 2 или 3, будет следующим:

print("%sHello%sWorld." % (' '*8, ' '*4)) 

Надеюсь, это поможет.

PS Вы также можете сделать следующее.

>>> prefix=' '*8 >>> sep=' '*2 >>> print("%sHello%sWorld." % (prefix, sep)) Hello World. 

Функция Print() в Python

На примерах узнайте, какие возможности предлагает функция print в Python.

Многие из вас при чтении этого руководства наверняка подумают, что в этой простой функции нет ничего нераскрытого, потому что именно с print многие начинают свое знакомство с Python, выводя на экран заветную фразу Hello, World! . Это естественно не только для Python, но и для любого языка, что функция print является базовой и одним из первых шагов при изучении как программирования в целом, так и конкретного синтаксиса. Однако со временем многие переходят к более продвинутым темам, забывая о возможностях простых на первый взгляд функций.

Это руководство целиком посвящено функции print в Python — из него вы узнаете о том, насколько она недооценена.

print("Hello, World!") 
Hello, World! 

Если в Python 2 скобки можно не использовать, то в Python3 они обязательны. Если их не указать, то будет вызвана синтаксическая ошибка.

print("Hello, World!") 
 File "", line 1 print "Hello, World!" ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello, World!")? 

Из текста выше можно сделать вывод, что в Python 3 print() — это не инструкция, а функция.

Чтобы убедиться, проверим type/class функции print() .

type(print) 
builtin_function_or_method 

Возвращается builtin_function_or_method . Это значит, что это ранее определенная или встроенная функция Python.

Предположим, что нужно добавить перенос строки или вертикальный отступ между двумя выводами. Для этого достаточно вызвать print() , не передавая аргументов.

print("Hello, World!");print("Hello, World!") 
Hello, World! Hello, World! 
print("Hello, World!") print() print("Hello, World!") 
Hello, World! Hello, World! 

Рассмотрим синтаксис функции print() .

print(value, . sep=», end=’\n’, file=sys.stdout, flush=False)

Как вы знаете, функция print выводит значения в поток данных или в sys.stdout по умолчанию. sys.stdout или стандартный вывод системы означают, что функция print выведет значение на экран. Его можно поменять на stdin или stderr .

Необязательные аргументы:

  • sep — это может быть строка, которую необходимо вставлять между значениями, по умолчанию — пробел. Вставим список слов в print и разделим их с помощью символа новой строки. Еще раз: по умолчанию разделитель добавляет пробел между каждым словом.
print('туториал', 'по', 'функции', 'print()') 
туториал по функции print() 
# \n перенесет каждое слово на новую строку print('туториал', 'по', 'функции', 'print()', sep='\n') 
туториал по функции print() 

Также можно разделить слова запятыми или добавить два символа новой строки ( \n ), что приведет к появлению пустой строки между каждой строкой с текстом или, например, знак плюс ( + ).

print('туториал', 'по', 'функции', 'print()', sep=',') 
туториал,по,функции,print() 
print('туториал', 'по', 'функции', 'print()', sep='\n\n') 
туториал по функции print() 
print('туториал', 'по', 'функции', 'print()', sep=',+') 
туториал,+по,+функции,+print() 

Прежде чем переходить к следующему аргументу, end , стоит напомнить, что в функцию можно передать и переменную. Например, определим список целых чисел и вставим его в функцию pass . Это список и будет выведен.

int_list = [1,2,3,4,5,6] print(int_list) 
[1, 2, 3, 4, 5, 6] 

Предположим, есть две строки, а задача состоит в том, чтобы объединить их, оставив пробел. Для этого нужно в первой функции print указать первую строку, str1 и аргумент end с кавычками. В таком случае на экран выведутся две строки с пробелом между ними.

str1 = 'туториал по' str2 = 'функции print()' print(str1) print(str2) 
туториал по функции print() 
print(str1, end=' ') print(str2) 
туториал по функции print() 

Возьмем другой пример, где есть функция, которая должна выводить значения списка на одной строке. Этого можно добиться с помощью такого значения аргумента end :

def value(items): for item in items: print(item, end=' ') value([1,2,3,4]) 
1 2 3 4 
file = open('print.txt','a+') def value(items): for item in items: print(item, file=file) file.close() # закройте файл после работы с ним. value([1,2,3,4,5,6,7,8,9,10]) 
import time print('Пожалуйста, введите ваш электронный адрес : ', end=' ') # print('Пожалуйста, введите ваш электронный адрес : ', end=' ', flush=True) # запустите код выше, чтобы увидеть разницу. time.sleep(5) 
Пожалуйста, введите ваш электронный адрес : 

А теперь посмотрим, как можно использовать функцию print для получения ввода от пользователя в Jupyter Notebook. Для этого используется встроенная функция input() .

tutorial_topic = input() print("Тема сегодняшнего урока: ", end='') print(tutorial_topic) 
функция print() Тема сегодняшнего урока: функция print() 

Здесь указан опциональный аргумент end , который объединяет статическую инструкцию в print и ввод пользователя.

Рассмотрим другие интересные способы вывода значений переменных в функции print .

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

a = 2 b = "PythonRU" print(a,"— целое число, а",b,"— строка.") 
2 — целое число, а PythonRU — строка. 
a = 2 b = "PythonRU" print(" — целое число, а — строка.".format(a,b)) 
2 — целое число, а PythonRU — строка. 

Если поставить одинаковый номер индекса в обоих местах, то при выводе на этих позициях будут одни и те же значения.

a = 2 b = "PythonRU" print(" — целое число, а — строка.".format(a,b)) 
PythonRU — целое число, а PythonRU — строка. 
  • %d — это заполнитель для числовых или десятичных значений.
  • %s — заполнитель для строк.
a = 2 b = "PythonRU" print("%d — целое число, а %s — строка."%(a,b)) 
2 — целое число, а PythonRU — строка. 

Посмотрим, что произойдет, если указать %s для переменной a , которая является целым числом.

print("%s — целое число, а %s — строка."%(a,b)) 
2 — целое число, а PythonRU — строка. 

Как видно, все работает. Причина в том, что функция print неявно выполняет typecasting и конвертирует целое число в строку. Но в обратном порядке это работать не будет. Функция не сможет конвертировать строку в целое число, а вместо этого выведется TypeError .

print("%d — целое число, а %d — строка."%(a,b)) 
 --------------------------------------------------------------------------- TypeError Traceback (most recent call last) in ----> 1 print("%d — целое число, а %d — строка."%(a,b)) TypeError: %d format: a number is required, not str 

Вывод

Это руководство — отличная отправная точка для новичков, желающих добиться высокого уровня мастерства в Python. Поиграйте с функций print еще и разберитесь с другими возможностями, которые не были рассмотрены здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *