return값으로 입력 파라메터값 역순 출력하는 reverse함수

def reverse(x,y,z):
    return z,y,x


ret = reverse(1,2,3)
print(ret)

r1,r2,r3 = reverse('a','b','c')
print(r1,r2,r3)

(3, 2, 1)

c b a

 

 

 

입력 파라메터 순서와 상관없이, 해당 파라메터=값 형태로 입력을 넣어줄 수 도 있다.

하지만, 입력 파라메터와 함수내에서 사용하는 변수명이 같아야 하므로(?)

불편하다 안쓴다.

def calc(x,y,z):
    print(x)
    print(y)
    print(z)
    return x+y+z


print(calc(y=20,x=10,z=30))

10

20

30

60

 

 

이 함수를 실행하면 오류가 나타난다.

왜일까?

이유는 함수 내에서 정의되어진 변수 result는 그 함수 내에서만 작동하고 함수가 끝나면 메모리를 잃게 되어

변수가 사라진다. 그래서 print(result)문을 실행하면 name 'result' is not defined라고 오류문을 내뱉는다.

def calculate_area(radius):
    result = 3.14 * radius **2
    return result

r = float(input('원의 반지름: '))
area = calculate_area(r)
print(result)

지역변수, 전역변수 개념을 확고히 하자.

r은 지역변수로서, 함수 내에 r을 활용하여도 전역변수 r에 할당된 값이 작용한다.

def calculate_area():
    result = 3.14*r**2
    return result

r = float(input('원의 반지름: '))
area = calculate_area()
print(area)

 

 

para_func 함수는 3개의 파라미터를 입력받는다. 여기서 주목할 것이,

v3 = 0으로 인해 v3의 default값이 0으로 주어진다.

따라서, para_func(10,20)으로 입력해도 오류가 나지 않는다. why?

para_func(10,20)은 para_func(10,20,0)으로 작동하기 때문이다.

para_func(10,20,30)을 해주면 v3=0의 default값에 v3 = 30이 들어간다.

def para_func(v1,v2,v3=0):
    result = 0
    result = v1 + v2 + v3
    return result


##전역 변수 선언 부분 ##
hap = 0

##메인 코드 부분 ##
hap = para_func(10,20)
print(hap)
hap = para_func(10,20,30)
print(hap)

*para를 활용하면, 파라미터 값 갯수 제한이 없어진다. 1개만 넣어도 되고, 2개, 3개 , etc... 

넣는 만큼 파라미터로써 작용할 수 있도록 *를 붙여준다.

여기서 주목할 것이, *para에서 para는 튜플 형태로 들어가게된다.예를들어, 

para_func(10,20)을 하게 되면 para = (10,20) tuple형식이 된다.

def para_func(*para):
    result = 0
    for num in para:
        result += num
    print(type(para))
    return result


##전역 변수 선언 부분 ##
hap = 0

##메인 코드 부분 ##
hap = para_func(10,20)
print(hap)
hap = para_func(10,20,30)
print(hap)

for 문은 in 뒤의 값을 iterating하는 반복문이다.

in 뒤에는 다양한 자료형이 올 수 있고, 다음과 같이 string을 넣어주면, string을 값 하나하나씩

뽑아서 보여준다. string 자체를 넣어도 되고, string이 할당된 변수를 입력해주어도 상관없다.

for x in 'hello python':
    print(x)
    
aStr = 'hello python'
for ch in aStr:
    print(ch)

for 문에서 가장 많이 사용하는 것이 range함수이다.

range(start,end,step)순으로 입력하면 되며, start, step은 각각 0,1의 default값을 갖는다.

예를들어, range(0,10,1) = range(0,10) = range(10)이다.

for i in list(range(0,11)):
    print(i)
for i in range(0,11):
    print(i)

'Data Anaylsis > python basic' 카테고리의 다른 글

정규표현식  (0) 2020.01.09
클래스  (0) 2020.01.06
파이썬기초(4)  (0) 2019.12.30
파이썬기초(3)  (0) 2019.12.26
파이썬기초(2)  (0) 2019.12.26

내가 입력하는 점수를 학점으로 변환시키는 코드

jumsu = int(input('점수를 입력하세요 : '))
if jumsu >=95:
    res='A+'
elif jumsu >=90:
    res = 'A'
elif jumsu >=85:
    res = 'B+'
elif jumsu >=80:
    res = 'B'
elif jumsu >=75:
    res = 'C+'
elif jumsu >=60:
    res = 'C'
elif jumsu >=55:
    res = 'D+'
elif jumsu >=50:
    res = 'D'
else:
    res = 'F'
print(res,'\n학점입니다. ^^')

 

사용자가 입력하는 값(숫자)를 구구단 형식으로 출력

num = int(input('Input number.\n'))
i=0
print('************{}dan************'.format(num))
while i<9:
    i += 1
    print('{}X{}={}'.format(num, i, num*i)) 
print('*****************************')

 

99를 입력할 때 까지 숫자를 무한으로 입력받아서 계속 구구단 출력

while True:
    num = int(input('Input number.\n'))
    if num<=0:
        continue
    elif num == 99:
        break
    print('************{}dan************'.format(num))
    for i in range(1,10):
        print('{}X{}={}'.format(num, i, num*i))
    print('*****************************')

 

 

윤년 계산기 

4로 나누어지면 윤년, 100으로 나누어지면 윤년 X, 400으로 나누어지면 윤년

while True:
    year = int(input('연도를 입력하세요 : '))
    if (year % 4 == 0) :
        if (year % 400 ==0):
            print('{}년은 윤년입니다.'.format(year))
            
        elif (year % 100 == 0):
            print('{}년은 윤년이 아닙니다.'.format(year))
        else: 
            print('{}년은 윤년입니다.'.format(year))
    else :
        print('{}년은 윤년이 아닙니다.'.format(year))
    if year == -1:
        break
while True:
    year = int(input('연도를 입력하세요 : '))
    if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
        print('{}년은 윤년입니다.'.format(year))
    else :
        print('{}년은 윤년이 아닙니다.'.format(year))
    if year == -1:
        break

 

for 문

for문 (반복문)은 while문과는 살짝 다르다.

while문은 무한루프가 가능하지만, for문은 그렇지않다.

for문은 대게 루프를 몇 번 돌지를 "알"고있을때 사용한다.

 

따라서 while, for문중 상황에 맞게 골라서 사용할 줄 알아야한다.

start_num = int(input('시작값을 입력하세요 :'))
end_num = int(input('끝값을 입력하세요: '))
step_num = int(input('증가값을 입력하세요.'))
total = 0
for i in range(start_num, end_num, step_num):
    total = total + i
print('{}에서 {}까지 {}씩 증가시킨 값의 합계 : '.format(start_num, end_num, step_num))
num = int(input('값을 입력하세요 :'))
sum_of_num = 0
for i in range(1,num+1):
    sum_of_num = sum_of_num + i
    
print('1에서 {}까지의 합계 : {} '.format(num,sum_of_num))
for i in range(1,9,1):
    print('#  {}단  #'.format(i+1),end=' ')
print()
for i in range(1,10,1):
    for j in range(2,10,1):
        print('%1dX %1d=%4d'%(j,i,i*j), end = " ")
    print()
    
        
    
    

'Data Anaylsis > python basic' 카테고리의 다른 글

클래스  (0) 2020.01.06
파이썬기초(5)  (0) 2019.12.31
파이썬기초(4)  (0) 2019.12.30
파이썬기초(2)  (0) 2019.12.26
파이썬 기초(1)  (1) 2019.12.26

 

%로 문자열을 formatting 할 수 있다.

print('%5s'%('*'*1))
print('%5s'%('*'*2))
print('%5s'%('*'*3))
print('%5s'%('*'*4))
print('%5s'%('*'*5))

 

별찍기

n = int(input('Input a number '))
print('%-5s'%('*'*1)*n)
print('%-5s'%('*'*2)*n)
print('%-5s'%('*'*3)*n)
print('%-5s'%('*'*4)*n)
print('%-5s'%('*'*5)*n)



n = int(input('시작! '))
while n>2: 
    for i in range(1,6):
        print(('*'*i+' '*(6-i))*n)
    n-=1

 

 

 

n = int(input('Input a number '))
Pi = 3.14
print('Circumference = %2.1f'%(2*n*Pi))
print('Area          = %2.1f'%(n**2*Pi))

 

 

입력받은 금액을 각 지폐 몇장으로 나눠지는지 알려주는 것

n = int(input('지폐로 교환할 돈은 얼마? '))
a_50000 = n//50000
b = n-a_50000*50000 # b %= 50000
a_10000 = b//10000
b -= a_10000*10000
a_5000 = b//5000
b -= a_5000*5000
a_1000 = b//1000
b -= a_1000*1000
a_0 = b%1000 

print('50000원짜리 ==> {}'.format(a_50000))
print('10000원짜리 ==> {}'.format(a_10000))
print('5000원짜리 ==> {}'.format(a_5000))
print('1000원짜리 ==> {} '.format(a_1000))
print('지폐로 바꾸지 못한 돈 ==> {} '.format(a_0))

 

 

weight = float(input('몸무게를 kg 단위로 입력: '))
height = float(input('키를 미터 단위로 입력: '))
BMI = (weight)/(height**2)
print('당신의 BMI= {}'.format(BMI))

 

input_money = int(input('투입한 돈: '))
cost_of_stuff = int(input('물건값: '))
change = input_money-cost_of_stuff
change_of_500 = change//500
change_of_100 = (change - change_of_500*500)//100

print('거스름돈: {}'.format(change))
print('500원 동전의 개수: {}'.format(change_of_500))
print('100원 동전의 개수: {}'.format(change_of_100))

 

'Data Anaylsis > python basic' 카테고리의 다른 글

클래스  (0) 2020.01.06
파이썬기초(5)  (0) 2019.12.31
파이썬기초(4)  (0) 2019.12.30
파이썬기초(3)  (0) 2019.12.26
파이썬 기초(1)  (1) 2019.12.26

+ Recent posts