Sie müssen Ihre Funktion reparieren, denn es sieht so aus, als ob es eine elif ...:
statt einer else:
braucht Und Sie müssen tatsächlich die Funktion auch aufrufen, sobald Sie Ihre Eingabe erhalten haben. So ...
def is_hot (N):
if N/2>1 and N-1>1: # N > 2
print (N, "is hot")
elif N/2<1 and N-1<1: # N < 2
print (N, "is cold")
else: # N is 2
print (N, "is just right!")
n = float(input(("Enter Number: ")))
is_hot(n)
Bitte beachte, dass ich nicht N in beiden Orten verwendet haben, wenn die func aufrufen und wenn die func definieren. Es würde funktionieren, aber es ist nicht immer das Beste, was die Lesbarkeit des Codes angeht.
Außerdem sollten Sie Ihre Funktionen am besten oben in Ihrem Code auflisten.
Sie können und sollten wahrscheinlich auch andere Variablennamen in der Funktion als im aufrufenden Code verwenden. Dies ist nicht für die Funktionalität, sondern für die Lesbarkeit. Wenn jemand nicht aufpasst, können sie den gleichen Namen sehen und denken, dass es eine globale Variable ist. Auch hier müssen Sie keinen anderen Variablennamen verwenden, aber es empfiehlt sich, verschiedene Variablennamen zu verwenden. Nicht zuletzt sind die Variablennamen in der Funktion oft allgemeiner und die Variablennamen im aufrufenden Code spezifischer. Hier ein Beispiel:
def merge_lists(list1, list2): # generic..
return zip(list1, list2)
my_merged_inventory_list = merge_lists(list_of_stock_items, list_of_item_prices)
Können Sie dies in einen Codeblock formatieren? Das im Klartext zu lesen ist irgendwie schmerzhaft. – enumaris
Sieht so aus, als ob Sie ein 'elif' anstatt 'else' brauchen –
yup es ist nicht richtig formatiert aber sonst lässt Sie keine bedingte Anweisung drin itll nur Fehler aus @BradSolomon sagte es richtig – OmegaNalphA