함수:특정한 기능을 수행하는 코드의 묶음
모듈 : 함수나 객체들을 소스 파일 안에 모은 것
전역변수:
지역변수:
매개변수: 외부에서 전달되는 데이터를 함수로 전달하는 변수
반환값: 함수로부터 되돌아 오는 값
매개변수와 인자(인수)의 차이: 함수에 전달되는 값은 인수 전달받는 변수를 매개 변수라고 한다
디폴트 인수: 함수의 매개 변수가 기본값을 가질 수 있게 하는 것. 예: def sub(name = "철수")
키워드 인수: 인수의 이름을 명시적으로 지정해서 값을 매개 변수로 전달하는 방법 예: def sub(x,y,z) 라는 함수가 있으면 함수를 호출 할 때 print(sub("x="30,"y="20,"z=" 10))처럼 인수 앞에 퀴워드를 두어서 인수를 구분하는 인수 위치가 달라도 상관없다.
위치 인수: 인수의 위치가 매개 변수의 위치와 달라도 되는 인수 sub(10,20,30) 이나 sub(x=10,y=20,z=30) 처럼 기본 인수 전달방식, 변수의 이름에 값을 직접 대입해서도 전달할 수 있는걸 위치 인수라고 한다.
가변인수:함수는 전달하는 값이 몇 개 인지 모르지만 , 함수 안에서 전달되는 값의 개수를 파악할 수 있는 인수 *args를 사용하거나 키워드 인수를 전달하기 위해선 **kwargs를 사용해서 가변길이 인수를 함수에 전달할 수 있다.
가변길이 인수의 자료형: args는 함수에 전달되는 여러개의 위치 인자를 한 묶음으로 모아서 튜플로 받는다.
가변 길이 키워드 인수의 자료형:kwargs는 개수가 정해지지 않은 키워드 인자들을 딕셔너리로 받는다.
반환값의 갯수 파이썬과 C언어의 차이: 파이썬은 여러개의 값을 묶어 튜플로 반환해 튜플을 반환한 값을 여러 변수에 값을 풀어서 저장할 수 있다. 하지만 C언어나 다른언어에선 불가능하다.
파이썬 인터프리터가 함수 정의를 만날 때 :헤더 def 키워드 시작하고 함수의 이름과 매개 변수를 적고 :콜론을 찍어줌으로 써 다음 블록을 읽어 반환 값이 있다면 반환을 하고 종료한다.
5장 문제 :
01
import math
def Get_peri(rad = 5.0):
return rad * math.pi
02
def Plus(num1, num2) :
print(f"({num1}+{num2})={num1+num1}")
def Minus(num1, num2) :
print(f"({num1}-{num2})={num1-num2}")
def Multiply(num1, num2) :
print(f"({num1} * {num2}) = {num1*num2}")
def Nanugi(num1, num2) :
print(f"({num1} / {num2}) = {num1/num2}")
03
def Calc(a,b):
return a+b,a-b,a*b,a/b
04
def GetGrade(score):
if score >= 90:
return 'A'
elif score >= 80:
return 'B'
elif score >= 70:
return 'C'
elif score >= 'D':
return 'D'
else:
return 'F'
05
def CheckPass(p):
up = False
low = False
ect = False
if len(p) >= 8:
for c in p:
if c.isupper():
up = True
elif c.islower():
low = True
elif c.isdigit():
ect = True
if ect and low and up:
print("사용할 수 있습니다.")
else:
print("사용할 수 없습니다. 다시 입력하세요!")
return
06
def Math_exam(a,b):
a= int(input("첫 번째 정수를 입력하시오 : "))
b = int(input("두 번째 정수를 입력하시오:"))
print(f"정수 {a} + {b} 의 합은?")
07
헷갈려서 나중에 하겠습니다.
08
def GetMoneyText(amout):
kr = {1:"일",2:"이",3:"삼",4:"사",5:"오",6:"육",7:"칠",8:"팔",9:"구"}
hund = amout //100
ten = (amout % 100) // 10
one = x % 10
res = ""
if hund > 0:
result += kr.get(hund) + "백"
if ten >0:
result += kr.get(ten) + "십"
if one > 0 :
result += kr.get(one)
result += "원"
return result
09
def GongyakSu(num1,num2):
maxgong = 0
num1,num2 = (num2,num1)if num1 > num2 else (num2,num1)
for i in range(1,num2 +1):
if num1 % i == 0 and num2 % i == 0:
maxgong = i
print(maxgong)
10
def testPrime(n):
for i in range(2,n +1):
for j in range(2,i + 1):
if i % j == 0:
break
else:
print(i)
break
11
def Deci2bin(n):
st = f"{bin(n)}"
return st[2:]
12
def GetSorted(x,y):
x,y = (x,y) if x> y else (y,x)
return x,y
13
import random
def dice_game():
while (True):
hu = random.randint(1,6)
com = random.randint(1,6)
if hu > com:
print("인간승리")
else :
print("컴퓨터 승리")
end = input("중단할까요? Y/N")
if end == "Y" or end == "y":
return
14
def Sqrt_Algo(x,g):
y = math.sqrt(x)
if y >= x/g - 0.1 and y <= x/g + 0.1:
return g
else :
return Sqrt_Algo((x/g + g) /2)
import turtle as t
15
def Draw_Squre(size, amout):
for i in range(amout):
t.fd(size)
t.left(90)
size = size + 5
16
def Draw_Line(angle):
for i in range((int)(360 / angle)):
t.forward(100)
t.backward(100)
t.right(angle)
실행
import python_05 as py
#01
print(f"Get_peri() = {py.Get_peri()}")
print(f"Get_peri(4.0) = {py.Get_peri(4.0)}")
#02
x1 = int(input("첫 번째 정수를 입력하시오:"))
x2 = int(input("두 번째 정수를 입력하시오:"))
py.Plus(x1,x2)
py.Minus(x1,x2)
py.Multiply(x1,x2)
py.Nanugi(x1,x2)
#03
a03 = int(input("첫 번째 정수를 입력하시오:"))
b03 = int(input("두 번째 정수를 입력하시오:"))
print(f"{py.Calc(a03,b03)}이 반환되었습니다.")
#04
a04 = int(input("점수를 입력하세요 : "))
print(f"성적은 {py.GetGrade(a04)} 입니다.")
#05
a05 = input("패스워드를 입력하시오:")
py.CheckPass(a05)
#06
py.Math_exam()
#07
# 헷갈려서나중에 하겠습니다.
#08
num08 = int(input("1000 이하의 금액을 입력하시오 :"))
py.GetMoneyText(num08)
#09
num09 = int(input("첫 번째 정수:"))
num092 = int(input("두 번째 정수:"))
py.GongyakSu(num09,num092)
#10
num10 = int(input("몇까지 소수인지 확인할건가요"))
py.testPrime(num10)
#11
num11= int(input("10진수:"))
py.Deci2bin(num11)
#12
num121 = int(input("첫 번째 정수:"))
num122 =int(input("두 번째 정수:"))
print(py.GetSorted())
#13
py.dice_game()
#14
x14 = int(input("x를 입력해주세요"))
y14 = int(input("y를 입력해주세요"))
print(f"{py.Sqrt_Algo(x14,y14)}")
#15
sz = int(input("사이즈를 입력해주세요"))
am = int(input("얼마나 반복할지 입력해주세요"))
py.Draw_Squre(sz,am)
#16
ang = int(input("각도를 입력해주세요"))
py.Draw_Line(ang)
첫댓글 1장부터 다시하세요 연구계획서, 소스코드, 라인단위주석, 실행결과, 정리문제 작성할것