Python中print函数的end参数失效问题求助
问题原因及解决办法
为什么end=" "不生效?
你在print(n, end=" ")之后多写了一行无参数的print()——这个默认会输出换行符(等同于print(end="\n")),直接覆盖了前面end=" "的设置,导致每次输出后还是强制换行。
修复后的代码
删掉多余的print()即可实现预期的空格分隔、不换行效果:
import sys num1 = int(input()) num2 = int(input()) for n in range(num1, num2 + 1): n_str = str(n) # 假设输入的数字都是6位,否则需要处理索引越界问题 sum_odd_pos = int(n_str[0]) + int(n_str[2]) + int(n_str[4]) sum_even_pos = int(n_str[1]) + int(n_str[3]) + int(n_str[5]) if sum_odd_pos == sum_even_pos: print(n_str, end=" ")
额外优化建议
原代码里的内层for i in range(0, 6)完全是冗余的——循环里根本没用到变量i,每次都直接重新计算所有奇偶位的和,去掉这个循环能让代码更高效简洁。另外如果输入的数字可能不是6位,建议添加长度判断,避免出现索引越界错误。
内容的提问来源于stack exchange,提问作者Nikoi Nikoi
相关产品推荐
相关产品推荐

