1
def common(num): 
    #returns true if num is divisible by all the 'i' integers 

    if all(num%divisor==0 for divisor in (1,10)): 
     return True 
    else: 
     return False 

print(common(2520)) --> True 
print(common(10)) --> True 
print(common(17)) --> False 

모두 안녕하세요,이 함수는 'num'이 'i'모든 숫자의 공배수인지 여부를 판단합니다. 나는 왜 10이 참을 리턴 하는지를 알 수 없다. 'all()'은 모든 테스트가 참이어야 모든 것이 참이어야 함을 의미하지 않습니까? 잘못 사용하고 있습니까? 내가 사용해야하는 더 나은 기능은 무엇입니까? 통찰력을 가져 주셔서 감사합니다.'all()'함수가있는 IF 문에서 여러 개의 부울 테스트

는 자신을 찾기 위해

+1

유일한 값은 1과 10 만들을 수 있습니다 두. 당신이 무엇을 의도했는지는 분명하지 않습니다. 예를 들어, 'range (1, 10)'과 같은 것을 원했을 것입니다. 짐작할 수 없다. –

+0

또는 아마도 'range (1, 11)' – chapelo

+1

만약 당신이 스스로를 발견한다면, 만약'if condition : return True; else : return False'를 사용하면 실제로'return condition'을 할 수 있습니다. (상황에 따라, 파이썬은'if' 문에 대한 값을 boolean 값으로 변환 할 것이기 때문에 슈퍼 부지런히되고 싶다면'return bool (condition)'을 실행하십시오.) – detly

답변

3

방법을 -wt :

num=10 
for divisor in (1,10): 
    print(divisor, num%divisor , num%divisor==0) 

1 0 True 
10 0 True 

를 제공하고 당신은 확실히 range(1,10)를 원하면서, (1,10)는 튜플 것을 이해한다. 기능 common() 당신이로 정의 할 수 있습니다 다음

all(num%divisor==0 for divisor in range(1,10)) 

와 같은 반환 값이 있는지

참고 : divisor``에 바인딩

def common(num): 
    return all(num%divisor==0 for divisor in range(1,10)) 
+1

@ 존 OK. 나는 방금 감사로 가장 upvoted 대답을 upvoted – eyquem

+0

감사합니다 존! 나는 프로그래밍/파이썬에 익숙하지 않아 튜플이 무엇인지 알지 못했다. 그리고 if 문을 버리는 것에 대한 의미를 알 수 있습니다. 너 락! – watchTower