Größer als-Zeichen ist eine Invalid Syntax

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
DeeJax
User
Beiträge: 1
Registriert: Mittwoch 28. August 2019, 05:44

Moin,

Ich bin jetzt ganz neu im Programmieren, weil wir in der Schule damit anfangen habe ich vor zwei Tagen schonmal zuhause was probiert. Grade möchte ich einen Code schreiben, bei dem ich Zahlen eingebe und der Computer mir sagt, ob meine erste Zahl größer, kleiner oder gleich meiner zweiten ist. Es funktioniert bis if(Zahl<Zahl2) (Zahl und Zahl2 sind die Variablen). Das Größer-als-Zeichen wird als "invalid syntax" oder " `<` not supported between instance of `built_in_function_or_method` " beschrieben. In Tutorials wird aber genau dieses Zeichen benutz, in Foren etc. steht es so.
Hier nochmal der einviertelfertige Code:

#Zahleninput
thetext = input("Schreibe eine Zahl:")
Zahl = input
thetext = input("Schreibe eine zweite Zahl:")
Zahl2 = input
#if-Befehle
if(Zahl<Zahl2)
print("example")

Danke für alle Antworten
DeeJax
Bolitho
User
Beiträge: 219
Registriert: Donnerstag 21. Juli 2011, 07:01
Wohnort: Stade / Hamburg
Kontaktdaten:

Du musst den input für die Zahl der Variable direkt zuweisen. Außerdem bekommst du beim vom input einen String, also eine Zeichenkette, du musst sie in eine Zahl (float oder int) umwandeln.

So z.B.:

Code: Alles auswählen

zahl = float(input("Schreibe eine Zahl:"))
zahl2 = float(input("Schreibe eine zweite Zahl:"))

if zahl < zahl2:
	print("Zahl2 ist größer als Zahl1")
else:
	print("Zahl1 ist größer als oder gleich Zahl2")
input: https://www.w3schools.com/python/ref_func_input.asp
Datentypen: https://realpython.com/python-data-types/
if / else: https://www.w3schools.com/python/python_conditions.asp
Benutzeravatar
__blackjack__
User
Beiträge: 13080
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@DeeJax: Also entweder bekommst Du einen Syntaxfehler – dann läuft das Programm gar nicht erst, oder Du bekommst einen Laufzeitfehler. Beides gleichzeitig geht nicht. Beim gezeigten Quelltext bekommst Du einen Syntaxfehler, der aber nichts mit dem „*Kleiner* als“-Zeichen zu tun hat das in dem Quelltext enthalten ist, sondern damit das am Ende der ``if``-Anweisung der Doppelpunkt fehlt:

Code: Alles auswählen

  File "forum15.py", line 7
    if(Zahl<Zahl2)
                 ^
SyntaxError: invalid syntax
Wenn Du hier ein Problem vorstellst, dann bitte auch immer den tatsächlichen Code und die komplette Fehlermeldung – sonst müssen wir raten was Du denn tatsächlich gemacht hast und was das Problem sein könnte.

Um die Bedingung gehören übrigens keine unnötigen Klammern und um binäre Operatoren erhöhen Leerzeichen die Lesbarkeit.

Kommentare sollten nicht beschreiben *was* der Code tut, denn das steht da bereits als Code, sondern warum er das so tut. Sofern das nicht offensichtlich ist.

Das andere Problem was Du beschreibst kommt daher das Du `Zahl` und `Zahl2` nicht an Zahlen, sondern beide an die Funktion `input` bindest und dann versuchst heraus zu finden ob die Funktion kleiner als sie selbst ist – was nicht nur nicht geht, sondern auch recht sinnfrei wäre.

Code: Alles auswählen

In [1]: input                                                                   
Out[1]: <function input(prompt=None, /)>

In [2]: input < input                                                           
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-f3c7ee3e9bb3> in <module>
----> 1 input < input

TypeError: '<' not supported between instances of 'builtin_function_or_method' and 'builtin_function_or_method'
Namen schreibt man in Python klein_mit_unterstrichen. Ausnahmen sind Konstanten (KOMPLETT_GROSS) und Klassen (MixedCase). Also `zahl` statt `Zahl`.

Namen sollte man auch nicht durchnummerieren. Da will man entweder bessere Namen finden oder gar keine Einzelnamen sondern eine Datenstruktur verwenden. Oft eine Liste. Bei diesen komplett sinnfreien Werten würde mir aber auch nicht wirklich etwas besseres einfallen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
vanisharma
User
Beiträge: 1
Registriert: Mittwoch 25. September 2019, 16:17

Hi - It was not only ">" sign error in your code. It had many other syntactical errors.
Since you are new to Python, so you must use an interactive IDE that could highlight the syntax errors while you code.
And for this, you do not have to install an IDE, try using the https://repl.it/languages/python3. This is an online IDE, and it catches and informs all the errors as you write the code.
I used the same to fix the code, check below:

Code: Alles auswählen

#input
thetext = input ("Write a number:")
number = int(thetext)
thetext = input ("Write a second number:")
number2 = int(thetext)
# if-commands
if number < number2:
  print ("example")
And here is the output, when you execute:

Code: Alles auswählen

Python 3.7.4 (default, Jul  9 2019, 00:06:43)
[GCC 6.3.0 20170516] on linux
Write a number:11
Write a second number:12
example
For understanding the Python conditions, I suggest this: https://www.techbeamers.com/python-if-else/
Hope, with the help of a rich online IDE, you should be able to learn a lot faster.
Antworten