Python打印逗号分隔整数序列 输出无法在同一行问题求助
问题原因
- 你写的代码每次循环都会单独调用
print()函数,Python的print()默认会在输出末尾追加换行符,所以每个结果都会单独占一行 sep参数仅在单次print()传入多个待输出值时生效,你每次仅传入一个整数,sep=","不会发挥作用
正确实现方案
方案1:批量转换后一次性输出(推荐,无多余符号问题)
如果需要严格实现「小于等于该数的最大整数」(即向下取整,兼容负数输入场景),可以用math.floor处理:
import math # split()默认按任意空白字符分割,比指定split(' ')兼容性更好,避免多个连续空格导致生成空元素 num_list = input().split() # 逐个转换为向下取整的整数,再转成字符串 result = [str(math.floor(float(num))) for num in num_list] # 用逗号拼接后一次性打印 print(','.join(result))
如果确认输入都是正数,也可以用你原来的int()转换逻辑:
num_list = input().split() result = [str(int(float(num))) for num in num_list] print(','.join(result))
方案2:循环输出调整结束符
如果需要保留循环输出的写法,可以修改print()的end参数替换默认的换行符:
num_list = input().split() for index, num in enumerate(num_list): int_val = int(float(num)) # 最后一个元素用换行结尾,其余用逗号结尾,避免末尾多余逗号 end_char = '\n' if index == len(num_list) - 1 else ',' print(int_val, end=end_char)
内容的提问来源于stack exchange,提问作者arthurj
相关产品推荐
相关产品推荐

