Python-While循环应返回字符串

时间:2018-09-16 15:38:06

标签: python string while-loop

同样,我有些执着于任务。这次,我的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 :(得分:1)

如果需要引号,请尝试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(),或者放在您的源代码中。

答案 1 :(得分:0)

这实际上是一个字符串。您可以通过打印以下类型的值进行测试:

>>> print(type(b))  
<class 'str'>

答案 2 :(得分:0)

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, "