python文字列比較
引数の中身が'range'か'r'だったときにこの出力
引数の中身が'ladder'か'l'だったときにあの出力
っていうのをやりたくて
文字列比較で条件分岐しようとしたんだけど
def function1(mode):
if mode == ('range' or 'r'):
x=1
elif mode == ('ladder' or 'l'):
x=2
return x
print(function1('r'))
'''実行結果
Traceback (most recent call last):
print(function1('r'))
return x
UnboundLocalError: local variable 'x' referenced before assignment
'''
or
じゃ反応してくれないのかな?
==
の前後逆にしてみたけど
def function2(mode):
if ('range' or 'r') == mode :
x=1
elif ('ladder' or 'l') == mode :
x=2
return x
print(function2('r'))
'''実行結果
Traceback (most recent call last):
print(function2('r'))
return x
UnboundLocalError: local variable 'x' referenced before assignment
'''
どうすりゃいいんだ(・ω・`)
・・・と、思い立ってリストとin演算子を使ってみた。
def function3(mode):
if mode in ['range' ,'r']:
x=1
elif mode in ['ladder' ,'l']:
x=2
return x
print(function3('r'))
'''実行結果
1
'''
うまくいきました
ぱっと調べて出てこなかったから誰か困るかもと思ってぱっと書いておく
python的にはメモするのも恥ずかしいくらいすごく基本的なことかもしれないね(・ω・`)
ちなみに比較演算子でis
っていうのもあるけど、これは「オブジェクトがそれ自体を指しているのか?」みたいな意味らしくてもっと狭い使い方だそうな。