Функция print

Введение

Примеры

  • 3

    Основы печати

    В Python 3 и выше, print является функцией , а не ключевое слово.

     print('hello world!')
    # out: hello world!
    
    foo = 1
    bar = 'bar'
    baz = 3.14
    
    print(foo)    
    # out: 1
    print(bar)    
    # out: bar
    print(baz)
    # out: 3.14
    
     

    Вы также можете передать ряд параметров для print :

     print(foo, bar, baz)
    # out: 1 bar 3.14
    
     

    Другой способ print нескольких параметров с помощью +

     print(str(foo) + " " + bar + " " + str(baz))
    # out: 1 bar 3.14
    
     

    То , что вы должны быть осторожны при использовании + для печати несколько параметров, однако, заключается в том , что тип параметров должен быть одинаковым. Попытка напечатать приведенный выше пример без броска к string первым приведет к ошибке, так как он будет пытаться добавить номер 1 в строке "bar" и добавить , что к числу 3.14 .

     # Wrong:
    # type:int  str  float
    print(foo + bar + baz)
    # will result in an error
    
     

    Это происходит потому , что содержание print будет оцениваться первым:

     print(4 + 5)
    # out: 9
    print("4" + "5")
    # out: 45
    print([4] + [5])
    # out: [4, 5]
    
    
     

    В противном случае, используя + может быть очень полезным для пользователя , чтобы прочитать вывод переменных В примере ниже выход очень легко читать!

    Сценарий ниже демонстрирует это

     import random 
    #telling python to include a function to create random numbers
    randnum = random.randint(0, 12) 
    #make a random number between 0 and 12 and assign it to a variable
    print("The randomly generated number was - " + str(randnum))
    
    
    
     

    Вы можете предотвратить print функции от автоматической печати на новую строку с помощью end параметра:

     print("this has no newline at the end of it... ", end="")
    print("see?")
    # out: this has no newline at the end of it... see?
    
     

    Если вы хотите записать в файл, вы можете передать его в качестве параметра file :

     with open('my_file.txt', 'w+') as my_file:
        print("this goes to the file!", file=my_file)
    
     

    это идет в файл!

  • 1

    Параметры печати

    Вы можете сделать больше, чем просто напечатать текст. print также имеет несколько параметров , чтобы помочь вам.

    Аргумент sep : место строка между аргументами.

    Вам нужно напечатать список слов, разделенных запятой или какой-либо другой строкой?

     >>> print('apples','bannas', 'cherries', sep=', ')
    apple, bannas, cherries
    >>> print('apple','banna', 'cherries', sep=', ')
    apple, banna, cherries
    >>> 

    Довод end : использовать нечто иное , чем символ новой строки в конце

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

     >>> print("<a", end=''); print(" class='jidn'" if 1 else "", end=''); print("/>")
    <a class='jidn'/>
    >>> print("paragraph1", end="\n\n"); print("paragraph2")
    paragraph1
    
    paragraph2
    >>> 

    Довод file : отправить вывод куда - нибудь, кроме sys.stdout.

    Теперь вы можете отправить свой текст в stdout, файл или StringIO, не обращая внимания на то, что вам дано. Если он крякает как файл, он работает как файл.

     >>> def sendit(out, *values, sep=' ', end='\n'):
    ...     print(*values, sep=sep, end=end, file=out)
    ... 
    >>> sendit(sys.stdout, 'apples', 'bannas', 'cherries', sep='\t')
    apples    bannas    cherries
    >>> with open("delete-me.txt", "w+") as f:
    ...    sendit(f, 'apples', 'bannas', 'cherries', sep=' ', end='\n')
    ... 
    >>> with open("delete-me.txt", "rt") as f:
    ...     print(f.read())
    ... 
    apples bannas cherries
    
    >>> 

    Существует четвертый параметр flush , который будет принудительно очистить поток.

Синтаксис

Параметры

Примечания