빅데이터 국비 교육

[아이티윌 빅데이터 52기] Day 8 Python Basic | 함수의 이해 / 코딩 테스트 준비 / 조건문과 반복문

datahaseo 2025. 10. 16. 12:53

Python Basic

함수의 이해 / 코딩 테스트 준비 /조건문과 반복문

 

<학습 내용>

-함수의 이해

-함수 정의하기

-조건문 

-반복문

 

 

 

함수의 이해

수학에서의 함수의 정의는 집합 x가 있으면 모든 원소가 집합 y 의 원소에 1개씩 대응될 떄, x에서 y 로의 함수라 함

 

파이썬에서 함수가 정의되어 있으면 재사용이 가능

함수에서 결과값이 나오려면 매개변수가 필요하다

 

 

def 함수이름 (매개변수) :

    [함수에 속한 명령어]

    return 반환값 

 

def f(x):
	return 2*x + 1

 

 

type() 함수

내가 넣은 변수의 데이터 타입을 확인하는 함수

bool, str, int,float 등 다양하게 확인 가능

 

print() 함수

print() 함수는 여러개의 값을 전달할 떄 공백으로 구분해서 한번에 출력즉, 띄어쓰기를 하지 않아도 띄어쓰기 처리가 되어 출력된다

 

문자열 외에 다른 데이터 타입의 변수도 사용 가능

 

 

input() 함수

input 함수를 통해 사용자로부터 입력값을 받아낼 수 있습니다

사용자가 입력한 모든 값은 문자열                                                                                                                                                                                                                                                                                                                       

 

<실습 연습>

#문자열을 더하면 연결하게 된다
a="안녕하세요 "
b="저는 햄스터를 키우고 있어요"
print(a+b)

> 안녕하세요 저는 햄스터를 키우고 있어요

                                            

 

#input 으로 입력받은 항목은 모두 str 값으로 인식
money=input("금액을 입력해주세요")
change=input("잔액을 입력해주세요")
print(money+change)

 

> 500001000

input 자체는 무조건 string 형식으로 값을 받아오기 떄문에 바로 + 를 하게 되면 내가 원한 연산 계산을 하지 못한다

 

#input 으로 입력받은 항목은 모두 str 값으로 인식, 따라서 내가 원하는 형태로 형변환을 해줘야 한다
money=int(input("금액을 입력해주세요"))
change=int(input("잔액을 입력해주세요"))
print(money+change)

 

> 51000

 

 

#사용자가 입력한 값에 대해서 정수 혹은 실수로 변환해줄 수 있음


math=input("수학 성적을 입력하세요")
science = input("과학 성적을 입력하세요")
print(math+science)

 

> 9080

input 자체는 무조건 string 형식으로 값을 받아오기 떄문에 바로 + 를 하게 되면 내가 원한 연산 계산을 하지 못한다

 

#사용자가 입력한 값에 대해서 정수 혹은 실수로 변환해줄 수 있음

math=input("수학 성적을 입력하세요")
science = input("과학 성적을 입력하세요")

math_score=int(math)
science_score=int(science)

print(math_score+science_score)

 

>170

 

 

budget=input("이번달 총 예산을 입력해주세요")
int_budget=int(budget)

print(type(budget))
print(type(int_budget))

 

> class 'str'

   class 'int'

 

print() 안에 type() 함수를 써서 데이터 형식을 확인할 수 있다

 

 

def avg(a,b):
    return round((a+b)/2,2)

left_sight=float(input("왼쪽 시력을 입력해주세요"))
right_sight=float(input('오른쪽 시력을 입력해주세요'))

print("왼쪽시력은" ,left_sight ,'이고', "오른쪽 시력은" , right_sight,'이며','평균 시력은',avg(right_sight,left_sight))

 

> 왼쪽시력은 1.2 이고 오른쪽 시력은 1.3 이며 평균 시력은 1.2

 

파이썬 자체로 평균을 구하는 함수는 없어서 (import 해서 mean 함수 있음)

  avg() 함수를 별도로 정의해줬다

 

 

 

#제곱근 구하기
a=pow(2,8)
print(a)


#절대값 구하기
a=abs(100)
print(a)


b=abs(-100)
print(b)

c=float(input("소수점 두자리 이상 있는 실수를 입력해주세요"))
print('입력한 실수는',c,'이고,',"정수로 만들면",round(c),"둘쨰 자리에서 반올림하면",round(c,2),'입니다')

 

256

100

100

입력한 실수는 5.469847 이고, 정수로 만들면 5 둘쨰 자리에서 반올림하면 5.47 입니다

 

 

 

 

 

파이썬 함수의 정의와 호출

-함수란 자주 사용하는 명령어를 재사용하기 위해서 그룹화 해 놓은 단이

-정의만으로는 아무 동작 하지 않으므뢰 호출을 해야한다

-정의한 파라미터를 전달하지 않으면 에러가 발생할 수 있다

-파라미터는 여러개를 설정할 수 있고, 콤마로 구분해서 선언할 수 있다

-파라미터는 기본값을 설정할 수도 있고 파라미터를 전달할 때 새로 정의할 수도 있다 (이미 기본값이 있으면 생략 가능)

-return 문을 만나면 함수는 즉시 종료되고, 그 이후의 코드는 실행되지 않는다

-함수 밖의 변수는 함수 내부에서 식별이 가능하지만, 함수 내부의 변수는 함수 밖에서 식별이 불가하다

 

*호출된 값이 결과값을 대체하는 것이다\\\\

 

#return 의 존재의 중요성

def f(x):
    y=x+1
    print(y)

print(f(2))

 

3

None

return 이 있어야 결과값으로 함수 값이 대체되는 건데, 만약 return 없이 print(f(2)) 이렇게 하면

print() 와 같으므로 NONE 이 출력된다

 

def f(x):
    y=x+1
    print(y)
    return y

print(f(2))

 

3

3

return 이 있기 때문에 f(2) 가 3 으로 대체되고 print(3) 이 3으로 출력될 수 있다

 

 

 

 

#함수 내부의 변수는 함수 밖에서 식별하지 못한다

def f(x):
    y=x+1
    return y

print(y)
print(f(2))

 

 

 

#함수를 정의할 때 변수의 기본값을 설정해줄 수 있고, 호출할 때 생략할 수도 있다

def sum1(x,y,z=0):
    answer = x+y+z
    print(answer)

sum1(1,2,3)
sum1(10,20)

 

 

 

 

#함수를 호출할 때, 변수의 지정해주면 순서와 상관없이 쓸 수 있다

def total(a,b,c,d) :
    z=a+b+c+d
    print(z)


total(4,6,8,9) 
total(d=9,c=8,b=6,a=4)

 

 

 

#RETURN 이 있으면 출력된 결과가 함수 부분을 대체한다

def plus(x,y):
    z=x+y
    return z

#return z 가 있기 떄문에 plus(10,20)  값이 10+20을 한 z 값으로 대체된다
a=plus(10,20)
print(a)


print(plus(100,200))


b=plus(5,7) + 100
print(b)

 

 

 

 

 

#리턴문을 만나면 함수는 실행 중간에 수행을 종료한다

def foo(x,y):
    return 0
    #이 아래부터는 함수에 포함되지 않음
    z=x+y
    print(z)

foo(1,2)

0

 

 

def foo(x,y):
    z=x+y
    print(z)
    return z

foo(1,2)

3

3

 

 

 

#함수 안에서 정의된 변수는 밖에서는 쓸 수 없다

 

 

 

 

 

 

 

조건문

특정 조건을 충족할 경우 실행되는 구문으로

들여쓰기 중요함

주어진 조건식이 참일 경우 블록에 속한 구문이 실행되고, 아닐 경우 건너뛴다

a=100
if a >= 100:
    print("a는 100보다 크기가 같습니다")
    print("그러므로 이 부분은 출력됩니다")

 

 

 

 

-if 에서 조건식에서 숫자형은 0은 false 그 외 모든 값은 참으로 처리

-공백문자도 하나의 글자로 취급되기 떄문에, 빈 문자열

-숫자가 있거나 문자가 있기만 해도 참으로 취급

-False 로 처리되려면 "" 이렇게 문자가 아무것도 없거나 숫자 0 (" " 은 참)

 

 

money=100
if money:
    print("택시를 타서")
print("집에 가요")

>> 택시를  타서
   집에 가요
   
   
money=0
if money:
    print("택시를 타서")
print("집에 가요")

>> 집에 가요

 

name = 'Python'
if name:
    print(name)
print("프로그래밍")

>> Python 
   프로그래밍

name = ''
if name:
    print(name)
print("프로그래밍")

>> 프로그래밍

 

 

변수 자체에 True / False 를 대입해서 비교할 수 있음

isKorean=False

if isKorean == True:
    print("한국사람입니다")

if isKorean == False:
    print("한국사람이 아닙니다")


if isKorean != True:
    print("한국사람이 아닙니다")


if isKorean !=False:
    print("한국사람입니다")

if isKorean:
    print("한국사람입니다")

if not isKorean:
    print("한국사람이 아닙니다")
    
    
    
>>한국사람이 아닙니다
한국사람이 아닙니다
한국사람이 아닙니다

 

 

 

else / elif

 

answer = input("한국인입니까? (Y/N)")

if answer == "Y":
    isKorean = True

else:
    isKorean=False


if isKorean:
    print("한국 사람 입니다")

else:
    print("한국 사람이 아닙니다")


if not isKorean:
    print("한국 사람이 아닙니다")

else:
    print("한국 사람 입니다")

 

print ("시험 시작")


point=int(input("점수를 입력하세요"))

if point > 90:
    print("A학점")

elif point > 80:
    print("B학점")

elif point > 70:
    print("C학점")

else:
    print("F학점")
print("시험 끝")

 

 

 

반복문

반복문이란 조건이 참을 충족하는 동안 혹은 주어진 범위 안에서 블록 안의 실행문을 반복해서 수행하는 문법

 

 

WHILE 문

초기식;                       #조건 판별에 필요한 기준값을 생성한다
while 조건식:                 #조건을 판별한다
	...반복할 구문...         #명령을 수행한다
    증감식                    #기준값에 변화를 주고 다시 조건식으로 이동한다

 

 

#1부터 10까지 1씩 증가하는 조건에서의 반복문

#for 문을 활용해서 1부터 10 까지 추출하기
for x in range (1,11):
    print('x=',x)



#while 문을 활용해서 1부터 10까지 추출하기
x=1
while x <=10 :
    print('x=',x)
    x+=1     #증감식 까먹지 않고 꼭 써주기

 

 

#구구단을 출력하자

#for 문을 활용해서 구구단 출력하기

y=int(input("구구단에 쓸 숫자를 입력해주세요!"))
for f in range (1,10):
    z=y*f
    print(y,"x",f,'=',z)


print("========")
#while 문을 이용해서 구구단 출력하기

u=1
while u <=10:
    z=y*u
    print(y,'x',u,'=',z)
    u+=1

 

 

 

#주의: while 문에서 증감식과 추출결과물 순서가 바뀌면 다음과 같이 나올 수 있음

저장된 z 값도 이상해지고, 원했던 1-9 까지의 값이 나오지 않게 되었음

 

u=1
while u <=10:
    z=y*u
    u+=1
    print(y,'x',u,'=',z)

 

 

#합계 구하기