我正在为学校做一些练习,但我无法克服这个问题。有什么办法可以在变量中添加换行符?我尝试仅串联\n
,但没有用。我希望它能够返回allPrimes
,每个数字都放在单独的行中。
def all_primes_upto(x):
allPrimes = ''
for i in range(x):
if is_prime(i):
allPrimes += i + '\n'
return allPrimes
答案 0 :(得分:3)
不要;您的函数应返回素数的 list ;呼叫者可以根据需要将它们加入单个字符串中。
def all_primes_upto(x):
return [i for i in range(x) if is_prime(i)]
prime_str = '\n'.join(str(x) for x in all_primes_upto(700))
答案 1 :(得分:1)
如果您将值存储在列表中,则可以逐行逐行打印每个项目
def all_primes_upto(x):
allPrimes = []
for i in range(x):
if is_prime(i):
allPrimes.append(i)
return allPrimes
l = all_primes_upto(10)
for i in l:
print(i)
答案 2 :(得分:1)
问题是您尝试对不同类型的变量使用+
运算符:i
是int
; '\n'
是str
。为了使+
作为字符串连接,您需要两个变量都为str
类型。您可以使用str
函数来做到这一点:
allPrimes += str(i) + '\n'
但是请注意,其他答案建议您的all_primes_upto
函数可以返回调用者可以加入并打印的列表,这是更好的解决方案。
答案 3 :(得分:0)
正确用法:
def all_primes_upto(x):
allPrimes = ''
for i in range(x):
if is_prime(i):
allPrimes += i + '\n'
print(allPrimes)
使用打印而不是返回