Frage bezüglich if-statement Verschachtelung (PEP8)
Verfasst: Montag 28. Juli 2014, 13:58
Hi Leute,
möchte mich hier auch mal wieder melden. Ich habe hier folgenden Code geschrieben und würde ihn gerne mal (vorzugsweise von BlackJack) auseinanderfleddern lassen.
Vor Allem die verschachtelten if-Anweisungen bereiten mir Bauchschmerzen, habe ich doch mal aufgeschnappt, dass man laut PEP8 nicht tiefer als zwei Ebenen verschachteln sollte?
Da es keine switch-case Anweisung gibt in Python suche ich nach einem guten Workaround. Auf meiner Suche habe ich deshalb schon von der Verwendung eines Dictionaries gelesen. Würde eure Meinung dazu gerne wissen.
Die int(num1)-Geschichte macht mich auch noch stutzig, wahrscheinlich kann ich die Werte direkt am Anfang in Integer umwandeln und muss es nicht bei jeder Verwendung machen.
Ansonsten würde ich mich über ein paar PEP8 Tipps freuen.
Kleine Anmerkung noch von mir:
- Die Division ist nicht ausgereift, sprich es werden keine "Reste" angezeigt.
- Es kann zwar ins negative gerechnet werden, aber nicht mit negativen Zahlen per Parameter.
möchte mich hier auch mal wieder melden. Ich habe hier folgenden Code geschrieben und würde ihn gerne mal (vorzugsweise von BlackJack) auseinanderfleddern lassen.
Code: Alles auswählen
#!/usr/bin/env python
from sys import argv
def add(num1, num2):
ergebnis = int(num1)+int(num2)
return ergebnis
def sub(num1, num2):
ergebnis = int(num1)-int(num2)
return ergebnis
def mul(num1, num2):
ergebnis = int(num1)*int(num2)
return ergebnis
def div(num1, num2):
if int(num1)==0 or int(num2)==0:
print "Error: Division throug 0!"
else:
ergebnis = int(num1)/int(num2)
return ergebnis
if len(argv) > 3:
scriptname, param1, param2, param3 = argv
if param1.isalpha() and param2.isdigit() and param3.isdigit():
if param1=="add":
print add(param2, param3)
elif param1=="sub":
print sub(param2, param3)
elif param1=="mul":
print mul(param2, param3)
elif param1=="div":
print div(param2, param3)
else:
print "Choose either \'add\', \'sub\', \'mul\' or \'div\'"
else:
print "You can only use numbers, not letters."
else:
print "You have to start the script like: scriptname operand number1 number2"
print "Allowed operands are \'add\', \'sub\', \'mul\' or \'div\'"
Da es keine switch-case Anweisung gibt in Python suche ich nach einem guten Workaround. Auf meiner Suche habe ich deshalb schon von der Verwendung eines Dictionaries gelesen. Würde eure Meinung dazu gerne wissen.
Die int(num1)-Geschichte macht mich auch noch stutzig, wahrscheinlich kann ich die Werte direkt am Anfang in Integer umwandeln und muss es nicht bei jeder Verwendung machen.
Ansonsten würde ich mich über ein paar PEP8 Tipps freuen.
Kleine Anmerkung noch von mir:
- Die Division ist nicht ausgereift, sprich es werden keine "Reste" angezeigt.
- Es kann zwar ins negative gerechnet werden, aber nicht mit negativen Zahlen per Parameter.