askinteger 不是一个 Python 内置函数,它来自于一个非常流行的第三方库:easygui,这个库提供了一系列简单易用的图形用户界面对话框,让你可以快速创建交互式程序,而无需深入了解复杂的 GUI 框架(如 Tkinter、PyQt)。

askinteger 的作用就是弹出一个对话框,提示用户输入一个整数,并返回用户输入的值。
安装 easygui
你需要安装这个库,如果你的环境中还没有,可以通过 pip 来安装:
pip install easygui
askinteger 的基本用法
askinteger 函数的基本语法如下:
easygui.askinteger(title, prompt, default=None, lowerbound=None, upperbound=None)
参数详解:
(字符串): 对话框的标题栏显示的文字。

prompt(字符串): 在对话框内显示给用户的提示信息,告诉用户需要输入什么。default(整数, 可选): 输入框中预先显示的默认值,如果用户不输入直接点击 "OK",则返回这个默认值。lowerbound(整数, 可选): 允许输入的最小整数值,如果用户输入的数字小于此值,对话框会提示错误,并要求重新输入。upperbound(整数, 可选): 允许输入的最大整数值,如果用户输入的数字大于此值,对话框会提示错误,并要求重新输入。
返回值:
- 如果用户输入了有效的整数并点击了 "OK",则返回该整数。
- 如果用户点击了 "Cancel" 或直接关闭了对话框,则返回
None。
代码示例
下面我们通过几个例子来熟悉它的用法。
示例 1:最简单的用法
import easygui
# 提示用户输入年龄
age = easygui.askinteger("年龄输入", "请输入您的年龄:")
# 判断用户是否输入了值
if age is not None:
print(f"您输入的年龄是: {age}")
# 因为 age 是整数,可以直接进行数学运算
print(f"您明年将 {age + 1} 岁。")
else:
print("您取消了输入。")
运行效果:
- 程序会弹出一个对话框,标题是 "年龄输入",提示是 "请输入您的年龄:"。
- 你输入一个数字("25"),点击 "OK"。
- 控制台会输出:
您输入的年龄是: 25 您明年将 26 岁。
示例 2:使用默认值和范围限制
假设我们要让用户输入一个 1 到 100 之间的分数。
import easygui
# 提示用户输入分数,默认为 60,并限制在 1 到 100 之间
score = easygui.askinteger(
"分数输入",
"请输入您的考试分数 (1-100):",
default=60,
lowerbound=1,
upperbound=100
)
if score is not None:
print(f"您输入的分数是: {score}")
if score >= 90:
print("成绩优秀!")
elif score >= 60:
print("成绩及格。")
else:
print("需要加油哦!")
else:
print("您取消了输入。")
运行效果:
- 对话框出现,输入框里默认写着 "60"。
- 如果你输入 "120" 并点击 "OK",对话框会提示 "Input must be less than or equal to 100",并让你重新输入。
- 如果你输入 "85" 并点击 "OK",控制台会输出:
您输入的分数是: 85 成绩及格。
与 askstring 和 askfloat 的区别
easygui 提供了一系列类似的函数,它们的工作方式非常相似,只是验证的数据类型不同。
| 函数名 | 功能 | 返回值类型 | 示例 |
|---|---|---|---|
askstring |
提示用户输入一个字符串 | 字符串 | name = easygui.askstring("姓名", "请输入您的姓名:") |
askinteger |
提示用户输入一个整数 | 整数 | age = easygui.askinteger("年龄", "请输入年龄:") |
askfloat |
提示用户输入一个浮点数 | 浮点数 | price = easygui.askfloat("价格", "请输入商品价格:") |
关键区别:
askstring:接受任何文本,不做数字验证。askinteger:会自动验证输入是否为整数,如果用户输入 "12.3" 或 "abc",对话框会报错,要求重新输入。askfloat:会验证输入是否为有效的浮点数(可以包含小数点)。
总结与注意事项
-
优点:
- 简单快捷:几行代码就能实现一个功能完整的 GUI 输入框,非常适合快速原型开发、小型工具或教学。
- 跨平台:在不同操作系统(Windows, macOS, Linux)上表现一致。
-
缺点:
- 功能有限:只能实现最基本的输入,无法自定义对话框的布局、样式或添加复杂的控件(如复选框、下拉列表)。
- 依赖库:需要额外安装
easygui。 - 外观较旧:其 UI 风格比较朴素,不适合开发现代化的、外观精美的专业应用程序。
什么时候使用 askinteger?
当你需要快速写一个脚本,让用户输入一个数字,并且不希望为 GUI 编写大量代码时,askinteger 是一个绝佳的选择。
- 一个简单的配置脚本,让用户设置线程数量。
- 一个游戏,让玩家选择难度级别(1-5)。
- 一个数据清理工具,让用户指定要处理的行数。
对于更复杂的 GUI 应用程序,你应该学习使用 Tkinter(Python 内置)、PyQt、wxPython 等更强大的框架。
