데이터분석 study/Python

TIL(Today I Learned) 24.06.28

justdata 2024. 6. 28. 19:47

조건문

if 문 : 조건을 만족했을 때 만 특정 코드를 실행하도록 하는 문법

    *** 파이썬에서는 어디까지 구문에 포함되는지를 들여쓰기로 구분하기 때문에 아주 중요!!!!

### 조건에는 불 자료형이 들어간다. money > 3800 은 True

money = 5000
if money > 3800:
	print("택시 타자!")

 

●else 와 elif : 조건을 만족하지 않을 때 다른 코드를 실행하고 싶을 때 쓰는 문법 

   - 다양한 조건을 판단할 때는 elif 

age = 27

if age < 20:
	print("청소년입니다.")
    
elit age < 65:
	print("성인입니다")
else:
	print("무료로 이용하세요!")

 

 

반복문

for문

 - for 문의 형태는 for 루프는  'for <원소> in <목록> :' 형태로 작성된다.

 -  'for <원소> in <목록> :'  <목록> 부분에는 리스트, 튜플, 문자열 , 반복자(iterator), 제너레이터 등 순회가 가능한 웬만한 모든 데이터 타입을 사용할 수 있고, <원소> 부분은 순회 변수(loop variable)라고 하는데, <목록> 부분에 넘긴 객체가 담고 있는 원소들이 루프가 도는 동안 하나씩 차례로 할당된다. 

출처 : https://www.daleseo.com/python-enumerate/

 

  - 예시)

만약 아래 리스트에서 나이가 20보다 큰 사람만 출력한다면 ?

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

 

for 문으로 출력해보자

for person in people:
    if person['age'] > 20:
        print(person['name'])

 

● for문 - enumerate, break 

enumerate() 함수는 기본적으로 인덱스와 원소로 이루어진 튜플을 만들어 준다. 

인덱스와 원소를 각각 다른 변수에 할당하고 싶다면 인자풀기 (unpacking)을 해줘야 한다. 

출처 : https://www.daleseo.com/python-enumerate/

만약 아래 리스트에서 앞에 5개만 출력해보고 싶다면?

fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지']

 

for i, fruit in enumerate(fruits):
    print(i, fruit)
    if i == 4:
        break

 

 

위에 파이썬 코드 출력값

 

▶for문은 가장 많이 쓰는 문법 중에 하나여서 예시문제에서는 리스트안에 있는 데이터가 몇 개 안되지만

   회사에서 다루는 데이터 수십만개에서 수백만개를 넘어가는 경우가 많기 때문에 꼭 이해하고 넘어가야 한다

   이해하기 위해 하나 하나 넣어서 적어가며 이해하고 연습, 게다가 코딩 테스트에도 많이 나오기 때문에

    꼭 이해가 안될 때는 손코딩으로 원리를 이해하자.

 

만약 아래 리스트 안에 있는 자연수 중 가장 큰 숫자를 구하라고 하면 

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

 

풀이는 다음과 같다.

max = 0
for num in num_list:
    if max < num:
        max = num

print(max)

 

출력하면 리스트 안에 가장 큰 숫자인 6이 나온다.

 

일단,

max = 0 이고, num에 있는 숫자 1을 넣으면 if문에서 

0 < 1 일 때 이 값은 0은 1보다 작은 것이 맞으므로 True 

그래서 max = 1 값을 반환하고,

 

max = 1 이고, num 에 있는 숫자 2를 넣으면 

1 < 2 일 때 이 값도 1은 2보다 작은 것이 맞으므로 True

그래서 max = 2 ,

 

max = 2이고, num 에 있는 숫자 3을 넣으면 

2< 3일 때 이 값도 2는 3보다 작은 것이 맞으므로 True

그래서 max = 3 ,

 

max = 3이고, num 에 있는 숫자 6을 넣으면 

3< 6일 때 3은 6보다 작은 것이 맞으므로 True

그래서 max = 6,

 

max= 6이고, num에 있는 숫자 6을 넣으면

6<6일 때 , 6은 6보다 작은 것 아니므로 False

그래서 그대로 max= 6

 

max = 6이고, num에 있는 숫자 3을 넣으면 

6<3 일 때 6은 3보다 작은 것이 아니므로 False

그래서 그대로 max = 6

 

그 다음 부터는 계속 max는 6이 나오므로 출력값은 6이 나온다.

 

num: 1 max:1

num:2 max: 2

num: 3  max : 3

num: 6 max : 6

num:3  max : 6

num : 4 max : 6

num: 5 max : 6

num : 6 max : 6

num:2 max:6

num:4 max : 6

 

 

함수

● 함수 사용 방법

 - 함수는 반복적으로 사용하는 코드들에 이름을 붙여놓은 것

def hello():
	print("안녕!")
    print("또 만나요!")
    
    
hello()
hello()

 

 

 - 조건문에 넣을 값을 바꿔가면서 결과를 확인할 때 쓰면 편함

def bus_rate(age):
		if age > 65:
		    print("무료로 이용하세요")
		elif age > 20:
		    print("성인입니다.")
		else:
		    print("청소년입니다")

bus_rate(27)
bus_rate(10)
bus_rate(72)

 

 

 - 단순한 출력 뿐만 아니라 결과 값을 돌려주도록 함수를 만들 수도 있다.

def bus_fee(age):
		if age > 65:
		    return 0
		elif age > 20:
		    return 1200
		else:
		    return 0     


money = bus_fee(28)
print(money)