У меня есть простая функция, которую я люблю вызывать и возвращать некоторые значения.Внутри этой функции есть оператор if, elif и else, цель - когда выполняется условие, возвращать некоторые значения, это когда if и elif не выполняются, запускать и отображать то, что когда-либо находится под оператором else.Я использовал оповещение виджета, чтобы отметить и заявить о проблеме.
Проблема заключается в следующем:
1 - Когда вызывается функция, она возвращает то, что когда-либо находилось в другом месте.несмотря на то, если заявление выполнено.
2- Удалите все строки кода в else, просто запустите if и elif, верните некоторое значение, если выполняются условия, в противном случае возвращает TypeError: 'NoneType' object is not iterable
.
Код:
from PyQt5 import QtCore, QtWidgets, QtGui
def fun( x, y, z):
X = x
Y = y
Z = z
for i in range(0,Z):
R = i * X/Y
if R == 10:
return R, i
elif 10 < R <= 45:
return R, i
else:
print('Error')
app = QtWidgets.QApplication([])
error_dialog = QtWidgets.QErrorMessage()
error_dialog.showMessage('Error!! change values')
app.exec_()
return R, i
Использование этих значений для выполнения условий.
result, prod = fun(10, 60, 100)
result, prod = fun(105, 60, 100)
result, prod = fun(10, 600, 100)
Ввод с оператором else:
result, prod = fun(10, 60, 100)
print( result, prod)
Вывод с оператором else:
Error window shows up
Error
0.0 0
Вход без оператора else:
result, prod = fun(10, 60, 100)
print( result, prod)
Вывод без оператора else:
10.0 60
Я хочу сохранитьзаявления и возвращаемые значения, как это желательно.Спасибо за вашу помощь