如何解决将字符串转换为整数的奇怪错误
所以我在2个脚本中尝试了相同的方法,但是由于某种原因,最后一个不起作用,而第一个代码就很好了。
def convert(str):
str = int(str)
values0 = 123
values1 = 1
try:
convert(values0) and convert(values1)
pass
except ValueError:
sg.PopupError('Only numbers accepted.')
#Now if I try to multiply those values
print(values0 * values1)
#Works!
但是出于某种未知的原因,我却没有。
#But for some reason this doesn't work in my homework: Maybe because of PySimpleGUI?
import PySimpleGUI as sg
import math
layout = [
[sg.Text('Enter how many hours you want to work: ')],[sg.InputText('')],[sg.Text('Enter how many pay you want per hour: ')],[sg.Button('Calculate Pay')],[sg.Cancel()] ]
window = sg.Window('Pay',layout)
def convert(str):
str = int(str)
while True:
event,values = window.read()
if event == sg.WIN_CLOSED or event == 'Cancel':
break
if event == 'Calculate Pay':
try:
convert(values[0]) and convert(values[1]) # I convert here
break
except ValueError:
sg.PopupError('Only numbers accepted.')
sg.Popup('Your pay is: ',values[0] * values[1]) # But this doesn't work
window.close()
抱歉,如果这是一个愚蠢的问题,我是一个完全的初学者,没有任何编码经验。
解决方法
def convert(str):
str = int(str)
您的convert
函数无法满足您的要求。它为局部变量分配了一些内容,该变量在函数外部无效(除非int(str)
引发异常)。
摆脱convert
,然后写出
values[0] = int(values[0])
等
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。