九九表的输出格式问题
from tkinter import *root=Tk()
for i in range(1,10):
for j in range(1,i+1):
b=Button(root,
text=f"{j}x{i}={i*j}")
b.pack()
mainloop()
怎么能输出如图所示的九九表呢 ?
要输出整齐排列的九九表,需要使用 grid() 布局管理器而不是 pack()。以下是修改后的代码:
from tkinter import *
root = Tk()
for i in range(1, 10):
for j in range(1, i+1):
# 使用grid布局,设置行和列的位置
b = Button(root,
text=f"{j}×{i}={i*j}",
width=8, # 设置固定宽度
height=2)# 设置固定高度
b.grid(row=i-1, column=j-1, padx=2, pady=2)# 行列索引从0开始
root.mainloop()
关键修改说明:
1. 将 pack() 改为 grid(row, column)
2. 添加 width 和 height 参数统一按钮尺寸
3. 使用 padx 和 pady 设置间距
4. 注意行列索引从0开始,所以用 i-1 和 j-1
这样就能得到行列对齐的九九乘法表界面了。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 为什么要用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() 本帖最后由 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 ! 用Tkinter的界面效果不错的:from tkinter import *
from tkinter import ttk
# 创建主窗口
root = Tk()
root.title("九九乘法表")
root.geometry("1100x720")
root.configure(bg='#8088cc')# 设置背景色为浅蓝色
# 创建样式对象
style = ttk.Style()
style.theme_use('alt')
# 配置按钮样式
style.configure('Custom.TButton',
background='lightgreen',
foreground='red',
borderwidth=4,
focuscolor='pink',
font=('Arial', 10, 'bold'),
width=14,
padding=(5, 10))
style.map('Custom.TButton',
background=[('active', 'pink'), ('pressed', '#f0f8ff')])
# 创建标题
title_label = Label(root,
text="九九乘法表",
font=('kaiti', 24, 'bold'),
fg='#2c3e50',
bg='#f0f822')
title_label.pack(pady=20)
# 创建主框架
main_frame = Frame(root, bg='#0088ff')
main_frame.pack(expand=True)
# 创建九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
# 使用ttk按钮,应用自定义样式
b = ttk.Button(main_frame,
text=f"{j} × {i} = {i * j}",
style='Custom.TButton')
b.grid(row=i - 1, column=j - 1, padx=3, pady=3, sticky='nsew')
# 配置网格权重,使按钮均匀分布
main_frame.grid_columnconfigure(j - 1, weight=1)
main_frame.grid_rowconfigure(i - 1, weight=1)
# 添加底部说明
footer_label = Label(root,
text="点击任意按钮可查看对应乘法结果",
font=('Arial', 10),
fg='#7f8c8d',
bg='#f0f8ff')
footer_label.pack(pady=10)
# 添加交互功能
def on_button_click(event):
# 获取按钮文本
text = event.widget.cget('text')
# 更新标题显示当前选择的乘法
title_label.config(text=f"九九乘法表:{text}")
# 为所有按钮绑定点击事件
for child in main_frame.winfo_children():
child.bind('<Button-1>', on_button_click)
# 运行主循环
root.mainloop() 这个代码最简单的99乘法表了
for i in range(1, 9):
for j in range(1, i + 1):
print(f"{j}x{i}={i * j}",end="\t")
print()
ydwb 发表于 2025-11-8 14:01
用Tkinter的界面效果不错的:
您这个程序代码有点太复杂了 ! import tkinter as tk
root = tk.Tk()
root.title("九九乘法表")
root.geometry("850x250")
text_widget = tk.Text(root, font=("Consolas", 10), bg='navy', fg='#ff5500', width=70, height=30)
text_widget.pack(padx=20, pady=10)
for i in range(1, 10):
line = ""
for j in range(1, i + 1):
line += f"{j}×{i}={i*j:2}"
text_widget.insert(tk.END, line + "\n")
root.mainloop()
页:
[1]