점프투파이썬 내장함수 질문

all(x)는 반복 가능한(iterable) 자료형 x를 입력 인수로 받으며 이 x가 모두 참이면 True, 거짓이 하나라도 있으면 False를 돌려준다.

라고 써있는데

2-7 자료형 참과 거짓 기준 참고해서 다 넣어봤습니다

[], (),{} 다 거짓이라고 나와있는데 all함수에 넣으니까 True가 나오는 이유가 궁금합니다 거짓이 하나라도 있으면 False가 나와야하는거 아니에요?

--

eval함수에 대해서도 질문있습니다

보통 eval은 입력받은 문자열로 파이썬 함수나 클래스를 동적으로 실행하고 싶을 때 사용한다.
라고 되어있는데 제가 다른언어를 배워보지 않고 파이썬이 첫언어라서 동적으로 실행한다는게 무슨의미인지 모르겠습니다

얌미 786

M 2020년 7월 24일 5:26 오후

목록으로
3개의 답변이 있습니다. 1 / 1 Page

all() 은 정확히 모르겠고...
eval() 같은 경우는, 전 보통 이럴 때 썼습니다.

>>>a = "1+2"
>>>b = eval(a)
>>>b
3

문자열로 만들어져 있는 식을 실행해줍니다. 제 기억이 맞다면, 저 식은 뭐든지 상관없습니다. 문자열로 되어 있지만 사실은 python 함수였다거나 그런것들도 다 실행시켜주는 걸로 기억하고 있고, 그로 인해 보안에 취약해서 되도록 사용하지 말라...였던 것으로 기억합니다.

singleton

M 2020년 7월 24일 7:21 오후

감사합니다! - 얌미님, 2020년 7월 27일 9:43 오전 추천 , 대댓글

내장함수 all 은 iterable이 빈값일 경우 True 를 리턴합니다.
다음은 파이썬 공식 문서의 설명입니다.


iterable 의 모든 요소가 참이면 (또는 iterable 이 비어있으면) True 를 돌려줍니다. 다음과 동등합니다:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

eval 은 다음처럼 파이썬 문법으로 만들어진 문자열을 실행할 수 있습니다.

>>> eval("sum([1,2,3])")
6

박응용

M 2020년 7월 24일 10:32 오후

점프 투 파이썬의 설명도 조금 수정했습니다. 감사합니다. - 박응용님, 2020년 7월 24일 10:41 오후 추천 , 대댓글
감사합니다! - 얌미님, 2020년 7월 27일 9:43 오전 추천 , 대댓글
print(bool(()))    # false
print(bool({}))    # false
print(all(()))        # true
print(all({}))        # true

가 나오는 것을 확인했습니다. 상황마다 다르게 되네요!

singleton

2020년 7월 25일 3:56 오후

감사합니다! - 얌미님, 2020년 7월 27일 9:43 오전 추천 , 대댓글