* в функции печати в python - PullRequest
1 голос
/ 02 мая 2020
text = 'PYTHON'
for index in range(len(text)):
    print(*text[:index + 1])

Функция * в print создает пробел между символами в sys.stdout . Может кто-нибудь сказать, пожалуйста, как это называется и что на самом деле делает?

Ответы [ 2 ]

4 голосов
/ 02 мая 2020

Печать * для текста равна печати print(text[0], text[1], ..., text[n]), и это печать каждой части с пробелом между ними. Вы можете сделать

text = 'PYTHON'
for index in range(len(text))
    print("".join(list(text)[:index + 1]))

или

text = 'PYTHON'
for index in range(len(text))
    print(*text[:index + 1], sep='')

, которые будут печатать каждую часть без пробела между ними. Выход

P
PY
PYT
PYTH
PYTHO
PYTHON
1 голос
/ 02 мая 2020

Это называется звездочками.

Asterisk передает все элементы в списке в вызов функции print как отдельные аргументы, и нам даже не нужно знать, сколько аргументов в списке.

Вы можете прочитать об этом больше здесь: https://treyhunner.com/2018/10/asterisks-in-python-what-they-are-and-how-to-use-them/

...