Ваша проблема в выражении try
:
try:
float(w2), float(w1)
print('I want a word')
funz()
Обратите внимание, что с помощью этого утверждения вы проверяете, не является ли одно из двух слов float
.Как только w1
или w2
не могут быть превращены в float
, что означает, что это слово, вы переходите к выражению except
.Что неверно, поскольку один из них может быть числовым.
Кстати, вот более простой и понятный способ сделать то же самое:
def funz():
while True:
w1=input('insert a word')
w2=input('insert a second word')
n1=input('insert a num')
n2=input('insert a second num')
if not (str(w1).isalpha()) & str(w2).isalpha():
print('I want a word')
continue
if not (str(n1).isnumeric()) & (str(n2).isnumeric()):
print('I said a number!')
continue
print('\n'+w1+w2+'\n')
print(float(n1)*float(n2))
break