Diese Ausgabe, wenn der Inhalt des Arguments 'range'or'r' ist. Diese Ausgabe, wenn der Inhalt des Arguments "ladder'or'l" ist. Ich möchte das tun Ich habe versucht, eine bedingte Verzweigung durch Vergleichen von Zeichenketten zu erstellen
def function1(mode):
if mode == ('range' or 'r'):
x=1
elif mode == ('ladder' or 'l'):
x=2
return x
print(function1('r'))
'''Ausführungsergebnis
Traceback (most recent call last):
print(function1('r'))
return x
UnboundLocalError: local variable 'x' referenced before assignment
'''
Reagiert es nicht mit "oder"?
Ich habe versucht, die Vorder- und Rückseite von ==
umzukehren
def function2(mode):
if ('range' or 'r') == mode :
x=1
elif ('ladder' or 'l') == mode :
x=2
return x
print(function2('r'))
'''Ausführungsergebnis
Traceback (most recent call last):
print(function2('r'))
return x
UnboundLocalError: local variable 'x' referenced before assignment
'''
Was soll ich tun (・ ω ・ \ `) Ich habe darüber nachgedacht und versucht, die Liste und den In-Operator zu verwenden.
def function3(mode):
if mode in ['range' ,'r']:
x=1
elif mode in ['ladder' ,'l']:
x=2
return x
print(function3('r'))
'''Ausführungsergebnis
1
'''
Es ging gut Ich habe es nachgeschlagen und bin nicht herausgekommen, also dachte ich, es könnte ein Problem für jemanden sein, also habe ich es aufgeschrieben.
Es kann peinlich einfach sein, eine Notiz in Python zu machen (・ ω ・ \ `)
Übrigens gibt es auch einen Vergleichsoperator namens "is", aber dies scheint etwas zu bedeuten wie "Zeigt das Objekt auf sich selbst?" Und es scheint eine engere Verwendung zu sein.
Recommended Posts