同样,我有些执着于任务。这次,我的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,"
我不认为我应该对它进行硬编码...对此是否有任何指针?
致谢
答案 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, "