for i in range(10):
print(i, sep = ',', end = '')
Это должно быть 0,1,2,3,4,5,6,7,8,9
, но правда в том, sep
не работает. Благодаря!Почему «seq» не работает в цикле?
for i in range(10):
print(i, sep = ',', end = '')
Это должно быть 0,1,2,3,4,5,6,7,8,9
, но правда в том, sep
не работает. Благодаря!Почему «seq» не работает в цикле?
Необязательный sep
аргумент используется для определения разделителя между запятыми значений аргумента, которые подаются к параметру print
objects
. objects
- параметр переменного аргумента, что означает, что он может принимать любое количество аргументов (или распакованный итерабельный).
От docs:
печати (* объекты, Сентябрь =»», конец = '\ п', файл = sys.stdout, вровень = False)
печати объектов в файл текстового потока, разделенный sep и с последующим завершением. sep, end и file, если они есть, должны быть указаны как аргументы ключевого слова.
Все аргументы без ключевого слова преобразуются в строки, такие как str(), и , записанные в поток, разделенные sep и их конец. Оба sep и конец должны быть строками; они также могут быть None, что означает использование значений по умолчанию . Если объекты не заданы, print() будет просто писать конец.
Лучший способ написания кода будет следующее:
print(*range(10), sep=',', end='')
Это использует *
оператор распаковывать итерацию и кормить каждого из его элементов в качестве аргументов функции print
.
Это эквивалентно:
print(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, sep=',', end='')
В этом цикле i
всегда является целым числом в одну цифру, и это не может быть разделено.
Было бы так:
print("1", sep=',', end='')
print("2", sep=',', end='')
print("3", sep=',', end='')
...
Вы только печать одного числа в то время, нет ничего, чтобы отделить, насколько 'print' обеспокоен. – deceze
Вы должны сделать что-то вроде: '','. Join ([str (i) для i в диапазоне (10)]). Другие уже упоминали, почему ваша версия не работает. – Maroun
понимать, спасибо. – zynl