Seite 1 von 1

Totale Anfängerfrage

Verfasst: Sonntag 11. Dezember 2016, 23:14
von Vithonil
Hallo zusammen,

ich habe vor kurzem fröhlich aus Interesse mit dem Programmieren angefangen und habe mich für Python entschieden. Ich wollte einen Taschenrechner programmieren, der den User zwei Zahlen eingeben lässt und diese dann je nach Eingabe des Benutzers entweder addiert, subtrahiert, miteinander multipliziert oder eben dividiert. Das funktioniert auch einigermaßen gut, aber leider wird kein Ergebnis ausgespuckt. Bin tatsächlich ratlos (komisch, so als Anfänger) und hoffe, ihr könnt mir da weiterhelfen und mir sagen, wo der Fehler ist, damit ich das in Zukunft vermeiden kann. Danke im Voraus!

Code: Alles auswählen

print('Which numbers do you want? ')

num1 = input('Choose your first number: ')
print('Number 1: ', num1)

num2 = input('Choose your second number: ')
print('Number 2: ', num2)

sel = input('Do you want to add, multiply, substract or divide? ')
if sel is 'add':
    sum = float(num1) + float(num2)
    print('The sum of {0} and {1} is {2}'.format(num1, num2, sum))

Re: Totale Anfängerfrage

Verfasst: Montag 12. Dezember 2016, 00:05
von BlackJack
@Vithonil: ``is`` prüft nicht ob die beiden Objekte den gleichen Wert haben, sondern ob es sich tatsächlich um exakt das selbe Objekt handelt. Es kann aber durchaus Zeichenketten mit dem gleichen Wert geben, die aber verschiedene Objekte sind.

Code: Alles auswählen

In [103]: a = u'sel'

In [104]: b = u'sel'

In [105]: a is b
Out[105]: False

In [106]: a == b
Out[106]: True
``is`` willst Du also nur verwenden wenn Du wirklich an der gleichen Identität interessiert bist und nicht wenn Du nur auf gleiche Werte testen möchtest. Meistens will man ``is`` nur mit Singletons verwenden, also Objekte die es nur *einmal* gibt. `None` wäre so ein Wert wo man fast immer ``is`` oder ``is not`` statt ``==`` oder ``!=`` verwendet.

Re: Totale Anfängerfrage

Verfasst: Montag 12. Dezember 2016, 07:02
von Vithonil
Wie würdest du denn überprüfen, was der Benutzer eingibt? (wenn es worte sind)

Re: Totale Anfängerfrage

Verfasst: Montag 12. Dezember 2016, 07:33
von __LC__
Moin Vithonil.
Vithonil hat geschrieben:Wie würdest du denn überprüfen, was der Benutzer eingibt? (wenn es worte sind)
Wie BlackJack es schon hingeschrieben hat. Für deinen konkreten Fall also:

Code: Alles auswählen

if sel == 'add':
    pass
Schöne Grüße

Re: Totale Anfängerfrage

Verfasst: Montag 12. Dezember 2016, 07:39
von noisefloor
Hallo,

wie BlackJack es in Zeile 8 des Beispiels gezeigt hat: mit `==`.

Noch was anderes: `sum` ist ein schlechter Name für eine Variable, weil du damit die Build-In Funktion Names `sum` überschreibst. Was später im Code zu Problemen führt, wenn du das "echte" `sum` verwenden würdest.

Gruß, noisefloor

Re: Totale Anfängerfrage

Verfasst: Montag 12. Dezember 2016, 08:10
von Vithonil
Vielen Dank euch! :D :D