鱼C论坛

 找回密码
 立即注册
查看: 115|回复: 7

九九表的输出格式问题

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式

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

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

x
  1. from tkinter import *
  2. root=Tk()
  3. for i in range(1,10):
  4.         for j in range(1,i+1):
  5.                 b=Button(root,
  6.                          text=f"{j}x{i}={i*j}")
  7.                 b.pack()
  8. mainloop()
复制代码


怎么能输出如图所示的九九表呢 ?

无标题.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 5 天前 | 显示全部楼层
要输出整齐排列的九九表,需要使用 grid() 布局管理器而不是 pack()。以下是修改后的代码:


  1. from tkinter import *

  2. root = Tk()

  3. for i in range(1, 10):
  4.     for j in range(1, i+1):
  5.         # 使用grid布局,设置行和列的位置
  6.         b = Button(root,
  7.                   text=f"{j}×{i}={i*j}",
  8.                   width=8,   # 设置固定宽度
  9.                   height=2)  # 设置固定高度
  10.         b.grid(row=i-1, column=j-1, padx=2, pady=2)  # 行列索引从0开始

  11. root.mainloop()
复制代码


关键修改说明:
1. 将 pack() 改为 grid(row, column)
2. 添加 widthheight 参数统一按钮尺寸
3. 使用 padxpady 设置间距
4. 注意行列索引从0开始,所以用 i-1j-1

这样就能得到行列对齐的九九乘法表界面了。

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

使用道具 举报

发表于 5 天前 | 显示全部楼层
为什么要用tk?
for i in range(1,10):
    for j in range(1,1+i):
        print('{0}*{1}={2}\t'.format(j,i,i*j),end = '')
    print()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
本帖最后由 dragov 于 2025-11-11 08:46 编辑
萧随风 发表于 2025-11-8 09:03
为什么要用tk?
for i in range(1,10):
    for j in range(1,1+i):

题目要求必须使用 Tkinter !
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 5 天前 | 显示全部楼层
用Tkinter的界面效果不错的:
  1. from tkinter import *
  2. from tkinter import ttk

  3. # 创建主窗口
  4. root = Tk()
  5. root.title("九九乘法表")
  6. root.geometry("1100x720")
  7. root.configure(bg='#8088cc')  # 设置背景色为浅蓝色

  8. # 创建样式对象
  9. style = ttk.Style()
  10. style.theme_use('alt')

  11. # 配置按钮样式
  12. style.configure('Custom.TButton',
  13.                 background='lightgreen',
  14.                 foreground='red',
  15.                 borderwidth=4,
  16.                 focuscolor='pink',
  17.                 font=('Arial', 10, 'bold'),
  18.                 width=14,
  19.                 padding=(5, 10))

  20. style.map('Custom.TButton',
  21.           background=[('active', 'pink'), ('pressed', '#f0f8ff')])

  22. # 创建标题
  23. title_label = Label(root,
  24.                     text="九九乘法表",
  25.                     font=('kaiti', 24, 'bold'),
  26.                     fg='#2c3e50',
  27.                     bg='#f0f822')
  28. title_label.pack(pady=20)

  29. # 创建主框架
  30. main_frame = Frame(root, bg='#0088ff')
  31. main_frame.pack(expand=True)

  32. # 创建九九乘法表
  33. for i in range(1, 10):
  34.     for j in range(1, i + 1):
  35.         # 使用ttk按钮,应用自定义样式
  36.         b = ttk.Button(main_frame,
  37.                        text=f"{j} × {i} = {i * j}",
  38.                        style='Custom.TButton')
  39.         b.grid(row=i - 1, column=j - 1, padx=3, pady=3, sticky='nsew')

  40.         # 配置网格权重,使按钮均匀分布
  41.         main_frame.grid_columnconfigure(j - 1, weight=1)
  42.     main_frame.grid_rowconfigure(i - 1, weight=1)

  43. # 添加底部说明
  44. footer_label = Label(root,
  45.                      text="点击任意按钮可查看对应乘法结果",
  46.                      font=('Arial', 10),
  47.                      fg='#7f8c8d',
  48.                      bg='#f0f8ff')
  49. footer_label.pack(pady=10)


  50. # 添加交互功能
  51. def on_button_click(event):
  52.     # 获取按钮文本
  53.     text = event.widget.cget('text')
  54.     # 更新标题显示当前选择的乘法
  55.     title_label.config(text=f"九九乘法表:  {text}")


  56. # 为所有按钮绑定点击事件
  57. for child in main_frame.winfo_children():
  58.     child.bind('<Button-1>', on_button_click)

  59. # 运行主循环
  60. root.mainloop()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
这个代码最简单的99乘法表了
for i in range(1, 9):
    for j in range(1, i + 1):
        print(f"{j}x{i}={i * j}",end="\t")
    print()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 前天 08:47 | 显示全部楼层
ydwb 发表于 2025-11-8 14:01
用Tkinter的界面效果不错的:

您这个程序代码有点太复杂了 !
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 17:04 | 显示全部楼层
  1. import tkinter as tk
  2. root = tk.Tk()
  3. root.title("九九乘法表")
  4. root.geometry("850x250")
  5. text_widget = tk.Text(root, font=("Consolas", 10), bg='navy', fg='#ff5500', width=70, height=30)
  6. text_widget.pack(padx=20, pady=10)
  7. for i in range(1, 10):
  8.     line = ""
  9.     for j in range(1, i + 1):
  10.         line += f"{j}×{i}={i*j:2}  "
  11.     text_widget.insert(tk.END, line + "\n")
  12. root.mainloop()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 00:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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