将字符串转换为整数的奇怪错误
A strange error converting strings to integers
所以我在 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.InputText('')],
[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])
等等
所以我在 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.InputText('')],
[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])
等等