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

PySimpleGUI贷款申请表输入类型转换问题咨询

PySimpleGUI贷款表单输入类型与转换问题解决

问题解答

1. 表单输入值的类型

是的,PySimpleGUI中InputText组件的返回值和input()函数完全一致,全部为字符串类型——哪怕用户输入的是数字,也会被以字符串形式存储。

2. 字符串转数字的方法

要实现类型转换,需先在事件循环中正确获取输入框的值,再用int()或float()进行转换。同时必须处理用户输入非数字的情况(比如字母、空值),避免程序崩溃。

修正后的完整代码

你的原代码存在布局结构错误(将每行拆分为元组),这会导致后续获取值失败。以下是修复布局并添加类型转换逻辑的代码:

import PySimpleGUI as sg

# 正确布局:每行是一个列表,包含文本组件和输入框
layout = [
    [sg.Text("Please enter your age: "), sg.InputText(key='AGE')],
    [sg.Text("Please enter your total monthly income after tax:"), sg.InputText(key='INCOME')],
    [sg.Text("Please enter your total monthly expenditure: "), sg.InputText(key='EXPEND')],
    [sg.Text("Enter the amount you would like to loan: "), sg.InputText(key='LOAN')],
    [sg.Submit(), sg.Cancel()]
]

window = sg.Window('Loan Application', layout)

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED or event == 'Cancel':
        break
    if event == 'Submit':
        # 尝试转换输入值,添加异常处理避免崩溃
        try:
            age = int(values['AGE'])
            month_income = float(values['INCOME'])
            month_expend = float(values['EXPEND'])
            loan_amount = float(values['LOAN'])
            
            # 此处可添加你的贷款计算逻辑
            print(f"转换后的值:年龄{age},月收入{month_income},月支出{month_expend},贷款额{loan_amount}")
            
        except ValueError:
            sg.popup_error("请输入有效的数字!")

window.close()

关键说明

  • 给每个InputText添加key参数,通过values[key]可精准获取对应输入值
  • 年龄用int()转换(符合整数属性),收入、支出、贷款额用float()转换(支持小数金额)
  • 用try-except捕获ValueError,处理用户输入非数字的异常场景
  • 原布局错误:你将每行拆分为元组(如age = [(sg.Text(...))], [sg.InputText()]),正确的每行应为单个列表,PySimpleGUI才能正常渲染并返回值

内容的提问来源于stack exchange,提问作者Madman_G3cko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:53:29