鱼C论坛

 找回密码
 立即注册
查看: 152|回复: 4

请大佬解惑

[复制链接]
发表于 2025-8-15 19:34:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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=,格式就变了呢???
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-8-15 19:35:16 | 显示全部楼层
你观察到的现象是由 print() 函数的 end 参数控制的。解释如下:

1. end=" " 的作用:
- 默认情况下 print() 会在结尾添加换行符 \n
- 当设置 end=" " 时,每次打印后不再换行,而是用空格结尾
- 这会导致同一行的乘法表达式都打印在同一行,用空格分隔

2. 代码对比分析:

  1. # 方案1:使用 end=" "
  2. for i in range(1,3):
  3.     for j in range(1,i+1):
  4.         print(i,"*",j,"=",i*j, end=" ")  # 不换行,用空格结尾
  5.     print("\n")  # 额外添加两个换行

  6. # 输出效果:
  7. # 1*1=1 \n\n
  8. # 2*1=2 2*2=4 \n\n

  9. # 方案2:默认换行
  10. for i in range(1,3):
  11.     for j in range(1,i+1):
  12.         print(i,"*",j,"=",i*j)  # 每次打印后自动换行
  13.     print("\n")  # 再添加两个换行

  14. # 输出效果:
  15. # 1*1=1\n
  16. # \n
  17. # 2*1=2\n
  18. # 2*2=4\n
  19. # \n
复制代码


3. 推荐写法(标准九九乘法表格式):

  1. for i in range(1,10):
  2.     for j in range(1,i+1):
  3.         print(f"{j}×{i}={i*j}", end="\t")  # 用制表符对齐
  4.     print()  # 仅换行一次
复制代码

输出效果:

  1. 1×1=1       
  2. 1×2=2        2×2=4       
  3. 1×3=3        2×3=6        3×3=9       
  4. ...(后续行类似)
复制代码


关键记忆点:
- end=" " 取消自动换行,用指定字符连接后续输出
- 默认 print() 等效于 print(end="\n")
- 双重换行 print("\n") 会产生空行(因为字符串包含1个\n + 默认1个\n)

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-8-15 20:16:25 | 显示全部楼层
99乘法表
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-8-15 21:07:04 | 显示全部楼层
1. end=" " 的作用:
- 默认情况下 print() 会在结尾添加换行符 \n
- 当设置 end=" " 时,每次打印后不再换行,而是用空格结尾
- 这会导致同一行的乘法表达式都打印在同一行,用空格分隔
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-8-16 00:21:04 | 显示全部楼层
本帖最后由 jackz007 于 2025-8-16 00:28 编辑

        先运行下面的代码看看结果
  1. print(1 , 2 , 3)
  2. print('A','B','C')
  3. print(4 , 5 , 6)
  4. print('*' * 80)
  5. print(1 , 2 , 3 , end = ' ')
  6. print('A','B','C' , end = ' ')
  7. print(4 , 5 , 6)
  8. print('+' * 80)
  9. print(1 , 2 , 3 , end = '\n')
  10. print('A','B','C', end = '\n')
  11. print(4 , 5 , 6 , end = '\n')
复制代码

        end = 是 print() 的命名可选参数,用来指定 print() 函数在完成指定内容的打印输出之后,需要最后附加打印输出的内容,不知道楼主注意到没有,print() 每次打印结束之后,都会自动回车换行,下一次再执行 print() 函数时,一定会从下一行的开头开始打印,这就是因为 end 参数的缺省值是  end ='\n' 的缘故。在楼主的代码中,使用 end = 参数的目的,就是为了改变这个缺省值,以便多次 print() 的打印结果能按照各自的先后顺序连续出现在同一行上。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-27 03:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表