Data Analysis/Python Basic
[파이썬] 함수 기본
뉴욕킴
2023. 5. 7. 01:39
함수: '무엇'을 넣으면 '어떤 것'을 돌려주는 상자
(함수는 외부에 별도로 존재, 메서드는 클래스 안에 존재)
예제1. 커피를 타는 과정 코드 만들기
coffee=0
coffee=int(input('어떤 커피 드릴까요? 1.보통 2. 설탕 3.블랙'))
if coffee==1:
print('종이컵을 준비한다')
elif coffee==2:
print('설탕 커피를 탄다')
elif coffee==3:
print('블랙커피를 탄다')
else:
print('아무거나 탄다')
어떤 커피 드릴까요? 1.보통 2. 설탕 3.블랙3
블랙커피를 탄다
예제1-1. 커피를 타는 과정 코드 만들기(함수 사용: 여러잔 사용시 용이)
coffee=0
def coffee_machine(button):
if coffee==1:
print('종이컵을 준비한다')
elif coffee==2:
print('설탕 커피를 탄다')
elif coffee==3:
print('블랙커피를 탄다')
else:
print('아무거나 탄다')
coffee=int(input('어떤 커피 드릴까요? 1.보통 2. 설탕 3.블랙'))
coffee_machine(coffee)
print('손님 커피 드세요.')
어떤 커피 드릴까요? 1.보통 2. 설탕 3.블랙2
설탕 커피를 탄다
손님 커피 드세요.
2. plus 함수 사용하여 두 숫자의 합 구하기
def plus(v1,v2):
result=0
result=v1+v2
return result
hap=0
hap=plus(100,200)
print('100과 200의 plus() 함수 결과는 %d' %hap)
100과 200의 plus() 함수 결과는 300
3. 덧셈, 뺄셈, 곱셈, 나눗셈 하는 계산기 함수 작성하기
def calc(v1,v2,op):
result=0
if op=='+':
result=v1+v2
elif op=='-':
resul=v1-v2
elif op=='*':
result=v1*v2
elif op=='/':
result=v1/v2
return result
res=0
var1, var2, oper=0,0,""
oper=input('계산을 입력하세요(+,-,*,/): ')
var1=int(input('첫 번째 수를 입력하세요:'))
var2=int(input('두 번째 수를 입력하세요:'))
res=calc(var1,var2,oper)
print('##계산기: %d %s %d = %d' % (var1, oper, var2, res))
계산을 입력하세요(+,-,*,/): +
첫 번째 수를 입력하세요:2
두 번째 수를 입력하세요:5
##계산기: 2 + 5 = 7
4. 로또 추첨 코드 작성
import random
def getNumber():
return random.randrange(1,46)
lotto=[]
num=0
print('** 로또 추첨을 시작합니다. **\n');
while True:
num=getNumber()
if lotto.count(num)==0:
lotto.append(num)
if len(lotto) >= 6:
break
print('추첨된 로또 번호 ==>', end='')
lotto.sort()
for i in range(0,6):
print('%d '%lotto[i], end='')
** 로또 추첨을 시작합니다. **
추첨된 로또 번호 ==>12 17 20 21 26 34
5. 문자와 숫자가 섞여있는 데이터가 있을 때 숫자를 기준으로 데이터를 정렬하는 프로그램 만들기
# A37B, 23CC, 88D9, BB8F, 3A9A의 값 5개를 정렬한다.
이 값들에서 문자는 무시하고 숫자만 취급하여 37, # 23, 889, 8, 39를 정렬하시오.
import random
def getNumber(strData):
numStr=''
for ch in strData:
if ch.isdigit():
numStr += ch
return int(numStr)
data=[]
i,k=0,0
if __name__=="__main__":
for i in range(0,10):
tmp=hex(random.randrange(0,100000))
tmp=tmp[2:]
data.append(tmp)
print('정렬 전 데이터: ', end='')
[print(num,end='') for num in data]
for i in range(0,len(data)-1):
for k in range(i+1, len(data)):
if getNumber(data[i]) > getNumber(data[k]):
tmp=data[i]
data[i]=data[k]
data[k]=tmp
print('\n 정렬 후 데이터: ', end='')
[print(num,end='') for num in data]
정렬 전 데이터: 13a55b97be15bac3755bd8bd7845a1333dd24f14e54
정렬 후 데이터: e15bd24fac3755bd8bd7b97b845a1333d13a5514e54