请大佬解惑
for i in range(1,10):for j in range(1,i+1):
print(i," * ",j," = ",i * j,end = " ")
print("\n")
1 x 1 = 1
2 x 1 = 2 2 x 2 = 4
for i in range(1,10):
for j in range(1,i+1):
print(i," * ",j," = ",i * j)
print("\n")
1*1=1
2*1=2
2*2=4
为什么加了end=,格式就变了呢??? 你观察到的现象是由 print() 函数的 end 参数控制的。解释如下:
1. end=" " 的作用:
- 默认情况下 print() 会在结尾添加换行符 \n
- 当设置 end=" " 时,每次打印后不再换行,而是用空格结尾
- 这会导致同一行的乘法表达式都打印在同一行,用空格分隔
2. 代码对比分析:
# 方案1:使用 end=" "
for i in range(1,3):
for j in range(1,i+1):
print(i,"*",j,"=",i*j, end=" ")# 不换行,用空格结尾
print("\n")# 额外添加两个换行
# 输出效果:
# 1*1=1 \n\n
# 2*1=2 2*2=4 \n\n
# 方案2:默认换行
for i in range(1,3):
for j in range(1,i+1):
print(i,"*",j,"=",i*j)# 每次打印后自动换行
print("\n")# 再添加两个换行
# 输出效果:
# 1*1=1\n
# \n
# 2*1=2\n
# 2*2=4\n
# \n
3. 推荐写法(标准九九乘法表格式):
for i in range(1,10):
for j in range(1,i+1):
print(f"{j}×{i}={i*j}", end="\t")# 用制表符对齐
print()# 仅换行一次
输出效果:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
...(后续行类似)
关键记忆点:
- end=" " 取消自动换行,用指定字符连接后续输出
- 默认 print() 等效于 print(end="\n")
- 双重换行 print("\n") 会产生空行(因为字符串包含1个\n + 默认1个\n)
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 99乘法表 1. end=" " 的作用:
- 默认情况下 print() 会在结尾添加换行符 \n
- 当设置 end=" " 时,每次打印后不再换行,而是用空格结尾
- 这会导致同一行的乘法表达式都打印在同一行,用空格分隔
本帖最后由 jackz007 于 2025-8-16 00:28 编辑
先运行下面的代码看看结果
print(1 , 2 , 3)
print('A','B','C')
print(4 , 5 , 6)
print('*' * 80)
print(1 , 2 , 3 , end = ' ')
print('A','B','C' , end = ' ')
print(4 , 5 , 6)
print('+' * 80)
print(1 , 2 , 3 , end = '\n')
print('A','B','C', end = '\n')
print(4 , 5 , 6 , end = '\n')
end = 是 print() 的命名可选参数,用来指定 print() 函数在完成指定内容的打印输出之后,需要最后附加打印输出的内容,不知道楼主注意到没有,print() 每次打印结束之后,都会自动回车换行,下一次再执行 print() 函数时,一定会从下一行的开头开始打印,这就是因为 end 参数的缺省值是end ='\n' 的缘故。在楼主的代码中,使用 end = 参数的目的,就是为了改变这个缺省值,以便多次 print() 的打印结果能按照各自的先后顺序连续出现在同一行上。
页:
[1]