Python:向变量添加换行符

Python:向变量添加换行符,python,Python,我正在为学校做一些练习,但我无法克服这个问题。有没有办法给变量添加换行符?我尝试只是连接\n,但不起作用。我希望它能够返回所有素数,每个数都在一行中 def all_primes_upto(x): allPrimes = '' for i in range(x): if is_prime(i): allPrimes += i + '\n' return allPrimes 不要;函数应该返回素数列表;如果调用方愿意,可以将它们合并

我正在为学校做一些练习,但我无法克服这个问题。有没有办法给变量添加换行符?我尝试只是连接\n,但不起作用。我希望它能够返回所有素数,每个数都在一行中

def all_primes_upto(x):
    allPrimes = ''
    for i in range(x):
        if is_prime(i):
            allPrimes += i + '\n'
    return allPrimes

不要;函数应该返回素数列表;如果调用方愿意,可以将它们合并为单个字符串

 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))

不要;函数应该返回素数列表;如果调用方愿意,可以将它们合并为单个字符串

 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))

如果将值存储在列表中,则可以在单独的行上逐个打印每个项目

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)

如果将值存储在列表中,则可以在单独的行上逐个打印每个项目

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)

问题是您试图对不同类型的变量使用+运算符:i是int;'\n'是一个str。要使+作为字符串串联工作,您需要两个变量都是str类型。您可以使用str函数实现这一点:

allPrimes += str(i) + '\n'

但是,请注意,其他答案表明,all_primes_upto函数可以返回调用方可以加入并打印的列表,这是更好的解决方案

问题是您试图对不同类型的变量使用+运算符:i是int;'\n'是一个str。要使+作为字符串串联工作,您需要两个变量都是str类型。您可以使用str函数实现这一点:

allPrimes += str(i) + '\n'
但是,请注意,其他答案表明,all_primes_upto函数可以返回调用方可以加入并打印的列表,这是更好的解决方案

正确用法:

def all_primes_upto(x):
    allPrimes = ''
    for i in range(x):
        if is_prime(i):
            allPrimes += i + '\n'
            print(allPrimes)
使用打印而不是返回正确用法:

def all_primes_upto(x):
    allPrimes = ''
    for i in range(x):
        if is_prime(i):
            allPrimes += i + '\n'
            print(allPrimes)

使用print而不是return

将您得到的结果包括在内会很有用,因为我怀疑您收到了一个异常。python的标准变量命名不适用。命名变量all_prime比allPrime好得多。另外,在询问Python问题时,最好指定您使用的版本,因为2和3具有不同的行为,可能导致不同的答案。好的,我下次会这样做,谢谢!包含您得到的结果会很有用,因为我怀疑您收到了一个异常。python的标准变量命名不适用。命名变量all_prime比allPrime好得多。另外,在询问Python问题时,最好指定您使用的版本,因为2和3具有不同的行为,可能导致不同的答案。好的,我下次会这样做,谢谢!这对我来说有点复杂,但我已经找到了答案!感谢这是一个列表理解的例子,它是一个定义列表的表达式,可以使用您接受的答案中显示的循环/条件/附加方案来定义列表。这对我来说有点复杂,但我找到了答案!感谢这是列表理解的一个示例,它是一个定义列表的表达式,可以使用您接受的答案中显示的循环/条件/附加方案来定义列表。