2012-03-31 5 views
1

Hallo kann einige mir eine Anleitung, ich gebe vor, den Wert des Funktionsschemas an eine Variable übergeben, die als Argument Schritt innerhalb des Bereichsmoduls verwendet werden. ich hoffe es ist klar .. sorry die Neulinge Jungs. nach einigen Versuchen habe ich das Edit gut.Return-Funktion Wert zu Bereich Argument Schritt

import os 
import sys 


def schema(x): 
    if x == 'M': 
     step=1 
    else: 
     step=2 
     return step 

def main(): 
    left_start = 1 
    left_end = 9 
    sch = schema('M') 

    range1= range(left_start,left_end,sch) 
    if 2 in range1: 
     print "In range" 
    else: 
     print "Missing in range" 

if __name__ == '__main__': 
    main() 
+0

Und was, beteuert, ist das Problem? –

+0

Das Problem ist TypeError: Bereich() Integer-Schritt Argument erwartet, bekam NoneType. –

+0

Das liegt daran, dass eine Funktion standardmäßig None zurückgibt. Ihre Schema-Funktion kehrt nicht zurück, wenn 'x == 'M' 'ist, daher gibt es' None' an 'range()'. –

Antwort

3

Ihr Code weist ein Problem mit dem Einzug auf. Die folgende:

def schema(x): 
    if x == 'M': 
     step=1 
    else: 
     step=2 
     return step 

def schema(x): 
    if x == 'M': 
     step=1 
    else: 
     step=2 
    return step 

Ansonsten lesen sollte, gibt die Funktion None wenn x == 'M'.

Ein prägnanter Weise, diese Funktion zu schreiben ist:

def schema(x): 
    return 1 if x == 'M' else 2 
+0

Uau Thx aix .. was für eine Unterstützung, es hat einfach perfekt funktioniert Sie sind alle großartig. –

1

Es sieht aus wie Sie Folgendes tun möchten:

def schema(x): 
    if x == 'M': 
     step=1 
    else: 
     step=2 
    return step 

Beachten Sie, wie die return step auf dem gleichen Niveau wie die if Anweisung eingerückt ist. In Ihrem Code wird return step nur im else Fall ausgeführt. In dem Fall x == 'M' würde Ihr Code None von schema() zurückgeben.

Mein vorgeschlagener Code wird die return step in jedem Fall ausführen.

+0

Hi Greg hat gerade den Code bearbeitet ... erhalte immer noch TypeError: range() integer step Argument erwartet, habe NoneType bekommen. –

1

Das Problem in Vertiefung Code:

def schema(x): 
    if x == 'M': 
     step=1 
    else: 
     step=2 
     return step 

es sollte wie:

def schema(x): 
    if x == 'M': 
     step=1 
    else: 
     step=2 
    return step 

im Code der Schritt wird IF zurückgegeben und nur wenn x! = 'M'.

Verwandte Themen