[아이티윌 빅데이터 52기] Day 8 Python Basic | 함수의 이해 / 코딩 테스트 준비 / 조건문과 반복문
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)
#합계 구하기