-
49 - 프로그램, 루틴, 프로시저, 메서드, 함수study with Q - 파이썬 2024. 6. 2. 17:58
# 프로그램(program)
: 미리 작성한 것
코드 전체에서 - 프로그램(program), 루틴(routine)
디른 의미로 변경 - 절차(procedure), 방법(method)
예시) 케이크를 먹는 프로그램
한 입 냠)
print("400g의 케이크가 있다.") # 케이크를 먹는 프로그램, 루틴 cake = { "name":"dankge", "left": 400 } # 케이크를 먹는 서브프로그램, 서브루틴 print("케이크를 80g 자른다") print("냠") cake["left"] -= 80 print(f"남은 케이크의 무게는 {cake['left']}이다.") >>> 400g의 케이크가 있다. 케이크를 80g 자른다 냠 남은 케이크의 무게는 320g이다.
#서브 프로그램, 서브 루틴 전용 문법, def
print("400g의 케이크가 있다.") # 케이크를 먹는 프로그램, 루틴 cake = { "name":"dankge", "left": 400 } # 케이크를 먹는 서브프로그램, 서브루틴 def var(): print("케이크를 80g 자른다") print("냠") cake["left"] -= 80 print(f"남은 케이크의 무게는 {cake['left']}g이다.") print() print(var()) print(var()) >>> 400g의 케이크가 있다. 케이크를 80g 자른다 냠 남은 케이크의 무게는 320g이다. None 케이크를 80g 자른다 냠 남은 케이크의 무게는 240g이다. None
None은 왜 나오고 있는 걸까... 🧐
더보기함수의 리턴값이 print 문에 의해 출력이 된 것인데요.
해당 함수의 리턴값을 정해놓지 않앗기 때문에, None이 출력된 것이예요.
해당 함수에서의 출력만 해보시려 하신 듯 한데, 그렇다면, print문 없이 작성하시면 None이 출력되지 않습니다.print("400g의 케이크가 있다.") # 케이크를 먹는 프로그램, 루틴 cake = { "name":"dankge", "left": 400 } # 케이크를 먹는 서브프로그램, 서브루틴 def var(): print(f"케이크를 {이만치}g 자른다") print("냠") cake["left"] -= 이만치 print(f"남은 케이크의 무게는 {cake['left']}g이다.") print() 이만치 = 80 print(var()) 이만치 = 120 var() >>> 400g의 케이크가 있다. 케이크를 80g 자른다 냠 남은 케이크의 무게는 320g이다. 케이크를 120g 자른다 냠 남은 케이크의 무게는 200g이다.
코드 긴 거 싫어...
print("400g의 케이크가 있다.") # 케이크를 먹는 프로그램, 루틴 cake = { "name":"dankge", "left": 400 } # 케이크를 먹는 서브프로그램, 서브루틴 def para(이만치): print(f"케이크를 {이만치}g 자른다") print("냠") cake["left"] -= 이만치 print(f"남은 케이크의 무게는 {cake['left']}g이다.") para(100) >>> 400g의 케이크가 있다. 케이크를 100g 자른다 냠 남은 케이크의 무게는 300g이다.
개쩐다... 이건 변수라고 쓰기에는 너무 쩔어서 변수라고 할 수 없어... parameter(매개변수)라고 할거야...
그리고 개쩌는 매개변수가 들어갔으니까 서브 루틴이라고 안하고 쩌는 이름인 절차(procedure)라고 부르자.
그래서...
#절차(procedure)
: 매개변수를 갖는 서브루틴
근디 파이썬이라는 현대적인 프로그램은 함수 내부에서 함수 외부에 있는 변수의 스택값을 변경하는 것을 허용하지 않음.
뭔 소리여? → 걍 그러려니 해봐...궁금해 죽겠네 왜 그랬대?위험혀, 왜냐면..
서브루틴(서브프로그램)을 동시에 실행할 수 있는 문법이 있고. 이를 코루틴(co+routine)이라고 부르는디 말여. 코루틴으로 공시에 외부의 변수에 접근해서 값을 변경하면 충돌이 날 수 있디야. AKA 버그버그 이슈이슈
그래서 나온 문법이 함수♡
#함수
: 수학에서 가져온 용어, 코드 자체가 값이 될 수 있게 하는 문법
: 프로시저 + 리턴값
# 함수를 써서 f(x) = x^2 + 2x + 1인 함수의 함수값을 계산해보면 def f(x): return x**2 + 2*x + 1 print(f(5)) >>> 36
나를 기억해줘...🌿
# 코드 전체 : 프로그램, 루틴 (+요즘 잘 안 써... 프로시저, 메서드)
# 작은 코드 : 서브프로그램, 서브루틴 (+프로시저, 메서드)
# 매개변수를 갖는 서브프로그램/서브루틴: 프로시저(procedure)
# 리턴값을 갖는 프로시저 : 함수(function)
# 클래스 내부에 있는 함수 : 메서드(method)
https://replit.com/@wh3308/peurogeuraem-rutin-geurigo-pureun-suyeom-eojjeogu#main.py
'study with Q - 파이썬' 카테고리의 다른 글
51 - (파이썬) 가변 매개변수 함수 (0) 2024.06.03 50 - 함수, 매개변수 기본 (0) 2024.06.02 46-48 - 4강 도전 문제 외 (0) 2024.06.02 45 - 4-4절 확인 문제 (0) 2024.05.28 44 - join() 함수 (0) 2024.05.24