在同一行中打印一些数字,用逗号隔开

2024-09-16 20:15:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把数字打印成 (输入数)的系数为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=",")

Tags: inmodnumberforinput数字elementdivisor
3条回答

如果要用给定的分隔符打印iterable的元素,应该将该iterable发送到print并解压,然后使用sep参数,而不是用end参数分别打印每个元素(如您所见,该参数将给定的字符串放在每个元素的“结尾”,包括最后一个)。你知道吗

print(*factors, sep=",")

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

实现这一点的一种方法是使用array enumeration显式地不为数组中的最后一项设置end关键字参数,如下所示:

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

实现这一点的另一种方法是将数组转换为字符串,然后使用^{}方法,该方法将iterable的元素与“glue”字符串连接起来。你知道吗

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

请注意,强制转换到str不应影响非字符串打印到标准输出的方式,因为打印时它们将隐式地强制转换为字符串。对于第二种方法,可以参考^{}的Python文档。你知道吗

你可以试试这个:

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

相关问题 更多 >