Python入门求助:石头剪刀布游戏修改字体遇IndentationError错误
石头剪刀布游戏:字体修改与缩进错误修复
一、先搞定你的缩进和语法错误
你写的那段字体代码有俩问题:
- 缩进错误:这段代码塞在
else: break后面,缩进和前面的代码块不匹配,而且不属于任何逻辑分支,Python肯定报错。 - 字典语法错:缺了开头的
{,键值对格式也不对,正确写法应该是:
font = { 'family': 'Arial', 'weight': 'bold', 'size': 99 }
但要提醒你:这段代码在你当前的控制台游戏里完全没用——因为print()和input()是终端输出,终端的字体大小是操作系统终端的设置控制的,Python代码没法直接改。要自定义字体,得用GUI框架(比如tkinter)做图形界面。
二、用tkinter做带自定义字体的游戏
下面是改好的完整代码,用tkinter做图形界面,你能随便调字体、大小和样式:
import random import tkinter as tk # 游戏核心逻辑 def play(player_choice): choices = ["rock", "paper", "scissors"] comp_pick = random.choice(choices) # 判断输赢 if player_choice == comp_pick: result = "平局!" elif (player_choice == "rock" and comp_pick == "scissors") or \ (player_choice == "paper" and comp_pick == "rock") or \ (player_choice == "scissors" and comp_pick == "paper"): result = "你赢了!" else: result = "游戏结束!" # 更新结果显示(用自定义字体) result_label.config(text=f"电脑选了:{comp_pick}\n{result}", font=custom_font) # 建主窗口 root = tk.Tk() root.title("石头剪刀布") root.geometry("550x450") # 自定义字体:字体名、大小、加粗 custom_font = ('Arial', 22, 'bold') # 要是想用中文,换成微软雅黑:custom_font = ('微软雅黑', 22, 'bold') # 标题 title = tk.Label(root, text="请选择你的出招:", font=custom_font) title.pack(pady=30) # 按钮组 btn_frame = tk.Frame(root) btn_frame.pack(pady=10) rock_btn = tk.Button(btn_frame, text="石头", font=custom_font, width=8, command=lambda: play("rock")) rock_btn.grid(row=0, column=0, padx=15) paper_btn = tk.Button(btn_frame, text="布", font=custom_font, width=8, command=lambda: play("paper")) paper_btn.grid(row=0, column=1, padx=15) scissors_btn = tk.Button(btn_frame, text="剪刀", font=custom_font, width=8, command=lambda: play("scissors")) scissors_btn.grid(row=0, column=2, padx=15) # 结果显示 result_label = tk.Label(root, text="", font=custom_font, justify="center") result_label.pack(pady=40) # 退出按钮 quit_btn = tk.Button(root, text="退出游戏", font=custom_font, command=root.quit) quit_btn.pack(pady=10) # 启动界面 root.mainloop()
三、代码说明
- 所有按钮、标题、结果文本都用了
custom_font,你改('Arial', 22, 'bold')里的参数就行:- 第一个值是字体(比如
'Times New Roman'、'微软雅黑') - 第二个值是字体大小
- 第三个值是样式(
'bold'加粗、'italic'斜体,删掉就是正常样式)
- 第一个值是字体(比如
- 游戏逻辑和你原来的一模一样,只是把控制台输入输出换成了GUI按钮和标签
- 不用再纠结缩进问题,GUI代码的结构更清晰
四、控制台版本的字体调整
要是你非得用控制台版本,只能手动改终端设置:
- Windows:右键终端标题栏 → 属性 → 字体,选字体和大小
- macOS:终端 → 设置 → 配置文件 → 字体
- Linux:根据用的终端(比如GNOME Terminal)在设置里调字体
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

