흔한말 (collection)/Python

파이썬 조건문 예제입니다. 근데 이제 다이나모를 곁들인..

hnanmal 2022. 2. 8. 20:28
300x250

프로그래밍에서는 다양한 상황이 벌어지는데, 그 중에서 조건에 맞는 객체만 골라서 통과시키거나 거부해야 하는 상황이 자주 발생합니다. 파이썬에서는 if 문을 활용하면 되는데, 실제로 어떤 상황에서 어떻게 적용하게 되는지 간단한 예제로 살펴봅시다.

반복문에서의 조건문 활용

mylist = [
    "강남_지사1",
    "강남_지사2",
    "강동_지사3",
    "강서_지사4",
    "강서_지사5",
    "강북_지사6",
    "강북_지사7",
    "강북_창고1",
    "강북_창고2",
    "의정부_지사8",
    "남양주_지사9",
    "수원_안전가옥",
    "태안_창고3",
    "강릉_소극장",
    "속초_연구동1",
    "나주_연구동2",
    "경주_지사10",
    "부산_지사11",
    ]

myresult = []
for i in mylist:
    if "강남" in i or "강북" in i or "수원" in i or "부산" in i:
        myresult.append(i)

위의 코드를 보시면, 각 지역마다 관리해야 하는 특정 시설이 있고, 이 시설들 중에서 강남, 강북, 수원, 부산에 있는 시설들만 골라서 리스트로 만드는 코드라는 것을 알 수 있습니다.

이때 for 문 내부에서 if 를 통해, 리스트의 각 원소가 우리가 결정한 기준에 맞는 지 아닌지를 판가름 한 뒤, 참이면 통과시키고, 아니면 걸러주고 있습니다.

코드를 실행한 결과를 보여드릴텐데, 앞으로 특별한 이유가 있지 않으면, Visual Studio Code와 같은 IDE보다는, Dynamo Sandbox내부에서 파이썬 노드를 열어서 보여드리도록 하겠습니다.

BIM 을 공부하시는 분들이 형상객체를 이용해서 나중에 연계하기도 편하고, 코드와 실행결과를 나란히 보기도 편하기 때문입니다.

 

실행결과가 잘 도출된 것을 확인할 수 있죠? 강남, 강북, 수원, 부산의 시설만 필터링 되었습니다.

 

대상에 맞는 함수 실행여부 결정

위에서 찾아낸 목록 중에서

해당 시설이 지사이면 “지사장 파견 필요”이라는 문구를 뒤에 덧붙이고,

안전가옥이면 “시설 폐쇄”라는 문구로 대체하고,

창고라면 “<면적 확대예정>” 라는 문구를 앞에 덧붙여 출력하고 싶다고 합시다.

그러면 함수를 3가지 만들고 if 문으로 조건에 맞게 적용해 주면 되겠죠?

다이나모 샌드박스에서는 앞서 만들었던 결과를 input 포트(적색 테두리)로 받아와서 연쇄적으로 코드를 실행할 수 있습니다.

 

위 그림을 보시면 파란색 테두리에서 ‘지사처리’, ‘안가처리’, ‘창고처리’ 라는 함수를 만들어서 해야 할 기능을 정했고,

 

초록색 테두리의 for 문에서 리스트의 원소를 하나씩 조회할 때마다, 시설의 종류에 맞춰 함수를 적용하도록 코드를 작성했습니다.

 

결과는 실행결과2에 나온 것 처럼 문구들이 수정되거나 잘 대체되었음을 확인할 수 있습니다.

다이나모 샌드박스 다운로드 관련 포스트 참조하여 실제로 따라해보셔도 좋을 것 같습니다.

 

Dynamo Sandbox 최신버전 다운받기

 

Dynamo Sandbox 최신버전 다운받기

레빗과 연결되어 동작하는 다이나모도 강력하지만, 다이나모 샌드박스는 잘 사용하면 레빗없이도 형상과 관련된 각종 알고리즘을 테스트하고 만들어내는 훌륭한 도구가 될 수 있습니다. 또한

hnanmal.tistory.com

 

반응형