Как эта строка кода позволяет применять [end = ""] между буквами? - PullRequest
0 голосов
/ 03 ноября 2019

Итак, я изучал основные вещи о Python. Я столкнулся с функцией печати, которая в основном что-то печатает.

Я узнал, что могу использовать [end=""] для завершения функции печати. Например,

my_job = 'hacker'
print(my_job, end="")

В основном дает мне,

hacker

Другой пример, используя те же значения, что и выше,

print(my_job, end="test")

В основном дает мне,

hackertest

Однако на этом сайте я увидел интересную тему о том, как на самом деле работает функция [end=""]. Затем я заметил, что @Ritesh Karwa опубликовал этот код,

myjob = 'hacker'
for c in myjob: print(c, end=" ")

В основном дал ему,

h a c k e r

Я знаю, что пробел внутри "" в [end=] позволял выводуесть пробелы, но как это работает? Я имею в виду, удалив [для c в myjob:] и используя только функцию печати, получилось:

hacker

Что за механизм стоит за [for c in myjob:], который позволял [end=] применять пробелымежду буквами, которые приводят к этому выводу,

h a c k e r

Я хотел спросить @Ritesh Karwa напрямую через комментарии, но мне не хватает репутации. Я не уверен, что четко задал свой вопрос, но я сделал все возможное. Заранее благодарю за полезные ответы. Я также использую Python 3.xx

Ответы [ 3 ]

3 голосов
/ 03 ноября 2019

В Python строки также являются итераторами (т.е. вы можете создать цикл, который будет обращаться к ним посимвольно). В этом случае:

for c in myjob:

создает цикл, в котором c, в свою очередь, будет иметь значение каждого отдельного символа в myjob.

Если вы только что сделали print(c)в цикле вы получите

h
a
c
k
e
r

. То, что делает end=' ', это замена символа \n (новая строка) по умолчанию, который обычно заставляет каждый оператор печати печатать на отдельной строке, как указано выше. и вместо этого печатать содержимое end=' ' (то есть пробел) после каждого отпечатка. Это дает вам

h a c k e r

Одна вещь, которую вы часто должны помнить после использования end=, заключается в том, что следующая print (которая может быть совершенно не связана) возобновится непосредственно после предыдущей печати, поэтому будет отображаться ната же строка. Люди часто используют отдельный print() для печати новой строки, поэтому следующий, не связанный оператор печати начинается с новой строки.

0 голосов
/ 03 ноября 2019

end = «» удаляет невидимую новую строку (\ n), которая добавляется в конце действия печати. Полезно для циклов for, если вы не хотите получать результаты в отдельных строках.

0 голосов
/ 03 ноября 2019

myjob - строковый объект, поэтому итеративный. Это означает, что вы можете, например, применять для циклов, таких как for letter in myjob, для итерации по всем буквам в строке.

Как вы видели, необязательный параметр end print заменяет стандартный конец, который является новымсимвол строки с указанным. Таким образом, в этом случае при каждом появлении в цикле for печатается следующая буква, за которой следует пробел. Если вы не укажете конец, вы увидите, что каждая буква будет напечатана в новой строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...