Variable mit Variable verrechen (Code-Fenster)

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Lungee
User
Beiträge: 14
Registriert: Dienstag 28. Mai 2019, 16:40

Moin miteinander,

habe eine Frage zum Thema 'mit Variablen rechnen'.

Code ist folgendermaßen:

Code: Alles auswählen

b = 869,54
a= 0,75

B = b-(b/a)
funktioniert als solches natürlich nur im Shell-Fenster. Im Code-Fenster bekomme ich den Fehler von wegen 'unsupported operand types....tuple and tuple...'

Wie kann ich das ändern?

Danke schon mal im Voraus
Benutzeravatar
__blackjack__
User
Beiträge: 13925
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Lungee: Was meinst Du mit „Shell-Fenster“? In Python funktioniert das nirgends denn da wird man ganz offensichtlich immer den `TypeError` bekommen weil man Tupel nicht durcheinander Teilen kann.

``869,54`` und ``0,75`` sind halt keine Zahlen sondern Tupel mit zwei Elementen die ganze Zahlen sind. Falls Du für `a` und `b` jeweils einen Dezimalbruch schreiben wolltest, solltest Du vielleicht noch mal in der Dokumentation nachschauen wie man das macht.

Code: Alles auswählen

In [2]: b = 869,54 
   ...: a= 0,75 
   ...:  
   ...: B = b-(b/a)                                                             
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-121f619845f4> in <module>
      2 a= 0,75
      3 
----> 4 B = b-(b/a)

TypeError: unsupported operand type(s) for /: 'tuple' and 'tuple'

In [3]: a                                                                       
Out[3]: (0, 75)

In [4]: b                                                                       
Out[4]: (869, 54)

In [5]: type(a)                                                                 
Out[5]: tuple

In [6]: a[0]                                                                    
Out[6]: 0

In [7]: a[1]                                                                    
Out[7]: 75
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
Lungee
User
Beiträge: 14
Registriert: Dienstag 28. Mai 2019, 16:40

@ blackjack
Ich weiß wie man einen Dezimalbruch etc. schreibt. Ist aber auch relativ unwichtig, wegen mir kann da auch

Code: Alles auswählen

b = 10
a= 2

B = b-(b/a)
stehen.

Mit Shell-Fenster ist gemeint, dass, wenn du diesen Code one-by-one ins Shell-Fenster tippst, du am Ende mit print(B) das Ergebnis erhälst.

Und die Frage ist eben, wie kann ich die Variablen im Code-Fenster verrechnen.

MfG
Lungee
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist der Python-REPL oder einfach auch nur Python-Prompt. Hat mit Shell erstmal nichts zu tun. Da kann man den starten, das ist aber auch alles. Kann auch in deiner IDE sein.

Und ich kann deinen Code oben eintippen:

Code: Alles auswählen

>>> b = 10
>>> a=2
>>> B = b - (b/a)
>>> B
5.0
Was also hast du da genau fuer Probleme?
Benutzeravatar
__blackjack__
User
Beiträge: 13925
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Lungee: Wie kann das unwichtig sein wenn es doch einen `TypeError` zur Folge hat wenn man es falsch macht? Und das ist wie gesagt völlig egal *wo* man das so schreibt, das ist in Python grundsätzlich falsch.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
Lungee
User
Beiträge: 14
Registriert: Dienstag 28. Mai 2019, 16:40

@ deets
Also erstmal 'mein' Python IDLE ist unterteilt in SHELL-Fenster und CODE-Fenster. Ob man jetzt Python REPL etc. dazu sagt, macht keinen Unterschied.

Des Weiteren: Ja ich weiß, dass ich das Ergebnis bekomme, wenn ich das Ganze in Shell, REPL etc. eintippe. Auch klar.

Nochmal meine Frage. Wie kann ich es bewerkstelligen, dass ich den oben genannten Code im CODE-Fenster ausführe, ohne einen Fehler zu erhalten und das Ergebnis (5.0) im Shell-Fenster angezeigt zu bekommen.
Benutzeravatar
__blackjack__
User
Beiträge: 13925
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Lungee: Du musst das Ergebnis, also `B`, ausgeben. Mit `print()`.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
Lungee
User
Beiträge: 14
Registriert: Dienstag 28. Mai 2019, 16:40

Okay Leute,

hab die Lösung gefunden @blackjack hattest doch recht mit Dezimalbruch etc.

Stand wohl aufm Schlauch.

Trotzdem danke euch.

MfG
Lungee
Antworten