繁体   English   中英

通过用逗号分隔在同一行中打印一些数字

[英]print some numbers in same line by seperating them with comma

我想打印数字,例如“(input_number)的因子是1,2,5,10,50,但打印时带有这样的额外逗号:1,2,3,4,5,

input_number = int(input("Enter A Number Please: "))
factors = []
for divisor in range(1, input_number+1):
        mod = input_number % divisor
        if mod == 0:
            factors.append(divisor)
print("Factors of %i are - " % input_number)
for element in factors:
        print(element, end=",")

您可以尝试以下方法:

input_number = int(input("Enter A Number Please: "))
factors = []
for divisor in range(1, input_number+1):
        mod = input_number % divisor
        if mod == 0:
            factors.append(divisor)
print("Factors of %i are - " % input_number+ ",".join(str(row) for row in factors))

如果要打印具有给定分隔符的iterable的元素,则应发送该iterable进行print和解压缩,并使用sep参数,而不是将每个元素与end参数分开打印(如您所见,给定的字符串,位于每个元素的“末尾”,包括最后一个)。

print(*factors, sep=",")

在Python中, printend关键字参数将指定在您作为第一个位置参数传入的字符串之后应打印的内容。 因此,在打印完每个元素之后,您要告诉Python打印一个逗号( ,字符),这正是它的作用。

实现此目的的一种方法是通过不使用数组枚举为数组中的最后一项明确设置end关键字参数,如下所示:

print("Factors: ", end="")
for index, element in enumerate(factors):
    if index == len(factors) - 1:
        print(element)
    else:
        print(element, end=",")

您可以完成此操作的另一种方法是将数组转换为字符串,然后使用.join()方法,该方法将可迭代元素与“胶水”字符串连接在一起。

print("Factors: ", end="")
factors = map(str, factors)
print(",".join(factors))

可能需要注意的是,强制转换为str不应影响将非字符串打印到STDOUT的方式,因为在打印时会将它们隐式强制转换为字符串。 对于第二种方法,参考map的Python文档可能会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM