Python - цикл должен возвращать строку - PullRequest
0 голосов
/ 16 сентября 2018

Опять я несколько застрял с задачей.На этот раз мой цикл while должен возвращать строку чисел через запятую.Я получаю числа, разделенные запятыми, когда печатаю их, но все это должно быть внутри строки, и вот где я терплю неудачу.

Код, который я использую:

a = 7
b = ""

while a <= 20:
    b += (str(a) + ", ")
    a = a + 3

ANSWER = b          # Same result with str(b)

Это производит: 7, 10, 13, 16, 19, а не "7, 10, 13, 16, 19," Я не думаю, что мне следует жестко его кодировать ... Есть какие-нибудь указатели на это?

С уважением

Ответы [ 3 ]

0 голосов
/ 16 сентября 2018

Если вы хотите окружающие кавычки, попробуйте repr():

b = "7, 10, 13, 16, 19,"
print(repr(b))

Вывод (только одинарные кавычки, это зависит от str.repr(), вы можете изменить его):

'7, 10, 13, 16, 19,'

Или явно оберните их или измените вывод repr() на двойные кавычки:

print('"{}"'.format(b))
print('"{}"'.format(repr(b)[1:-1]))

Выход:

"7, 10, 13, 16, 19,"

repr() дает строку, содержащую печатаемое представление объекта , и для большинства типов результат repr() будет подходящим для eval() или для быть введенным в ваш исходный код.

0 голосов
/ 16 сентября 2018
a = 7
b = ""

while a <= 20:
    b += (str(a) + ", ")
    a = a + 3

ANSWER = f'"{b}"'
print(ANSWER)
(xenial)vash@localhost:~/python/stack_overflow$ python3.7 letters_dict.py 
"7, 10, 13, 16, 19, "
0 голосов
/ 16 сентября 2018

Это на самом деле строка. Вы можете проверить это, напечатав значение типа:

>>> print(type(b))  
<class 'str'>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...