You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python入门求助:石头剪刀布游戏修改字体遇IndentationError错误

石头剪刀布游戏:字体修改与缩进错误修复

一、先搞定你的缩进和语法错误

你写的那段字体代码有俩问题:

  1. 缩进错误:这段代码塞在else: break后面,缩进和前面的代码块不匹配,而且不属于任何逻辑分支,Python肯定报错。
  2. 字典语法错:缺了开头的{,键值对格式也不对,正确写法应该是:
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 00:30:39