2011-12-05 2 views
1

숫자가 1과 3 사이인지 확인하기 위해 테스트하고 싶지만 내 솔루션은 추악하고 기본이라고 생각합니다.조건부 범위 내의 숫자에 대한 테스트

누군가가 더 나은 것을 제안 할 수 있습니까?

blah = ('woo','blah','foo','bah') 
if int(tmpword[2]) >= 1 or int(tmpword[2]) >= len(blah): 
     return False, bpoints[int(tmpword[2])-1] 
else: 
     return False, word 

tmpword 일부 문자열이 빠져 나오고 있습니다. 그 수는 1 사이이며, 기존의 코드는 당신도하고 싶은 일을하지 않는 방법으로 'ㅋ'

+0

한 가지 방법을 의미 현재는 int (tmpword [2])를 참조하고 있습니다. –

+0

매우 사실이지만, 저는 더 우아한 해결책을 알고 있습니다. –

+0

사실 저는 소문자로 글을 쓰고 있습니다. 고맙습니다. –

답변

2
if 1 <= int(tmpword[2]) <= len(blah): 

의 길이 있다면 난 그냥 테스트하려는. 당신은 아마 당신이 3 곳을 변수에`INT (tmpword [2]) '에 저장하고, 그 변수를 참조하는 것이 코드를 덜 추한 할

if int(tmpword[2]) >= 1 and int(tmpword[2]) <= len(blah): 

+0

doh. 예! 나는 기억에서 그것을 타이핑하고 있었다 :) 고마워요! –

0
def test(tmpword): 
    return 1 <= int(tmpword) <= len(blah) 
+0

'<='<='에 대해'<'를 변경해야한다고 생각합니다. – juliomalegria

+0

죄송합니다! 나는 "사이에"읽고 확실하지 않았습니다. –

+0

1도 유효한 답변이며'num'은 이제'tmpword'입니다 :) – juliomalegria