python - 我正在尝试修复值错误以防用户输入字母
问题描述
我刚刚做了一个无形的ATM应用程序。没什么花哨的,您基本上可以创建一个带有金额的帐户,也可以提取。我正在尝试修复值错误,以防用户在 Tkinter 教科书中输入字母而不是整数。
我做了 try catch 语句,但它仍然抛出一个值错误。
def get_selected_row(event):
try:
global selected_tuple
index = list1.curselection()[0]
selected_tuple= list1.get(index)
e1.delete(0,END)
e1.insert(END,selected_tuple[1])
e2.delete(0,END)
e2.insert(END,selected_tuple[2])
e3.delete(0,END)
e3.insert(END,selected_tuple[3])
e4.delete(0,END)
e4.insert(END,selected_tuple[4])
except ValueError:
pass
def acct_details ():
global balance
list1.delete(0,END)
list1.insert(END,("Hello", acct_name.get()))
list1.insert(END, ("your account number is ", acct_number.get()))
list1.insert(END, ("and your balance is", balance))
def clear():
list1.delete(0,END)
e1.delete(0,END)
e2.delete(0,END)
e3.delete(0,END)
def withdraw_fxn(amount):
list1.delete(0,END)
try:
global balance
if balance < amount:
list1.insert(END,('Sorry, you have an insufficient Balance'))
else:
balance = balance - amount
list1.insert(END, (acct_name.get(), "Your new balance is ",balance))
except ValueError:
pass
def deposit_fxn(amount):
list1.delete(0,END)
global balance
try:
balance += amount
list1.insert(END,(acct_name.get(), "your new balance is ", balance))
except ValueError:
pass
解决方案
您正在捕获 IndexError,要捕获 ValueError,您必须添加
except ValueError:
...
推荐阅读
- java - List 到 2 维字符串的列表
- javascript - onClick,等待现有的 XMLhttprequest() 完成
- javascript - 为什么不能在订阅方法中设置值?
- installation - 尝试使用 Julia 打开 Jupyter Notebook - 错误(请参见下文)
- python - 'numpy.float64' 对象在贝叶斯优化中不能解释为整数
- git - Git 在不更改提交 ID 的情况下更改旧提交的更新
- python - 如何在 Django 中获取响应参数?
- css - lit-element + SASS 中的 Web 组件
- android - 带有 ListAdapter(来自 android)的 ViewPager2 显示 java.lang.IllegalStateException
- javascript - 为什么我的函数没有赋予角色 discord.js