如何让Python的print()不换行?实现奇偶数字分单行输出
实现n以内奇数和偶数的单行输出
原代码的问题在于每次循环都会单独打印一个数字,导致逐行输出。要实现单行展示所有偶数和奇数,可以先把数字分别收集到列表中,再统一格式化输出。
修改后的代码如下:
number = input("enter the numbers: ") int_numb = int(number) # 收集偶数和奇数 even_numbers = [] odd_numbers = [] for i in range(1, int_numb + 1): if i % 2 == 0: even_numbers.append(str(i)) else: odd_numbers.append(str(i)) # 单行输出结果 print(f"偶数为{', '.join(even_numbers)}") print(f"奇数为{', '.join(odd_numbers)}")
关键说明:
- 用两个列表
even_numbers和odd_numbers分别存储转成字符串的偶数和奇数,方便后续拼接 - 使用
', '.join(列表)方法把列表中的元素用逗号加空格连接成一个完整的字符串 - 最后通过一次
print语句输出所有偶数,再一次输出所有奇数,实现单行展示的效果
如果想更简洁,也可以用列表推导式直接生成列表:
number = input("enter the numbers: ") int_numb = int(number) even_numbers = [str(i) for i in range(2, int_numb + 1, 2)] odd_numbers = [str(i) for i in range(1, int_numb + 1, 2)] print(f"偶数为{', '.join(even_numbers)}") print(f"奇数为{', '.join(odd_numbers)}")
这里直接用range(2, int_numb+1, 2)生成所有偶数,range(1, int_numb+1, 2)生成所有奇数,省去了判断步骤,代码更高效。
内容的提问来源于stack exchange,提问作者Joyal Jose Punnoor
相关产品推荐
相关产品推荐

