지역변수: 함수 내에서만 쓸 수 있는 변수(함수를 호출했을 시에만 적용)

전역변수: 프로그램 내에서 모두 쓸 수 있는 변수

gun = 10  -> 외부에 있는 수 이므로 [함수 내]남은 총 개수에는 영향을 주지 않음. 

#지역변수
def checkpoint(soldiers):  #경계근무 군인 수
    gun = 20    -> 함 수 내에서 gun의 개수 다시 설정해줘야 함. 
    gun = gun - soldiers   #총 - 경계근무 군인 수 = 총이라는 변수에 넣는다
    print("[함수 내] 남은 총 : {0}".format(gun))   #20-3 = 18

print("전체 총 : {0}".format(gun))  #10
checkpoint(2)   #2명이 경계 근무
print("남은 총 : {0}".format(gun))  #10
#전역변수
gun = 10

def checkpoint(soldiers):  #경계근무 군인 수
    global gun   #전역 공간에 있는 gun 사용-> 즉, gun=10 을 함수 내에서 사용
    gun = gun - soldiers   #총 - 경계근무 군인 수 = 총이라는 변수에 넣는다
    print("[함수 내] 남은 총 : {0}".format(gun))   #10 - 2 = 8



print("전체 총 : {0}".format(gun))   #10
checkpoint(2)   #2명이 경계 근무
print("남은 총 : {0}".format(gun))   #8


#전역변수 사용하는 다른 방법(더 간단한return사용)
gun = 10 

def checkpoint_ret(gun, soldiers):
    gun = gun - soldiers
    print("[함수 내] 남은 총 : {0}".format(gun))  #8
    return gun  -> gun의 수 10 을 return함으로써 사용가능 

print("전체 총 : {0}".format(gun))  #10
gun = checkpoint_ret(gun, 2)  
print("남은 총 : {0}".format(gun))  #10-2= 8

 

반응형

'프로그래밍 > Python' 카테고리의 다른 글

25. 가변인자  (0) 2023.05.24
24. 기본  (0) 2023.05.24
23. 전달값과 반환값  (1) 2023.05.24
22. 함수  (0) 2023.05.24
21. 한 줄 for  (0) 2023.05.24
#가변인자
def profile(name, age, lang1, lang2, lang3, lang4, lang5):
    print("이름 : {0}\t나이: {1}\t".format(name, age), end=" ") #end=""->이 구문과 이어서 다음 구문을 출력함
    print(lang1, lang2, lang3, lang4, lang5)

def profile(name, age, *language):   
    print("이름 : {0}\t나이: {1}\t".format(name, age), end=" ")
    for lang in language:
        print(lang, end=" ")
    print()


profile("유재석", 20, "Python", "Java", "C", "C++", "C#", "Javascript")  #이름 : 유재석  나이 : 20   Python Java C C++ C# JavaScript
profile("김태호", 25, "Kotlin", "Swift")                                 #이름 : 김태호  나이 : 25   Kotlin Swift
   ->서로 다른 값을 넣을 때는 *을 이용한 가변인수를 통해서 값을 추출할 수 있다!
반응형

'프로그래밍 > Python' 카테고리의 다른 글

26. 지역변수와 전역변수  (0) 2023.05.24
24. 기본  (0) 2023.05.24
23. 전달값과 반환값  (1) 2023.05.24
22. 함수  (0) 2023.05.24
21. 한 줄 for  (0) 2023.05.24
def profile(name, age, main_lang):
    print("이름 : {0}\t나이 : {1}\t주 사용 언어 : {2}".format(name, age, main_lang))  #\t: tab

profile("유재석", 20, "파이썬")    #이름 : 유재석   나이 : 20   주 사용 언어 : 파이썬
profile("김태호", 25, "자바")      #이름 : 김태호   나이 : 25   주 사용 언어 : 자바

#같은 학교, 같은 학년, 같은 반 수업 일때
def profile(name, age=17, main_lang="파이썬"):   
    print("이름 : {0}\t나이 : {1}\t주 사용 언어 : {2}".format(name, age, main_lang))

profile("유재석")  #이름 : 유재석   나이 : 17   주 사용 언어 : 파이썬
profile("김태호")  #이름 : 김태호   나이 : 17   주 사용 언어 : 파이썬


#키워드값
def profile(name, age, main_lang):
    print(name, age, main_lang)

profile(name="유재석", age=20, main_lang="파이썬")  #유재석 20 파이썬 ->키워드값으로 정의하면 순서 상관없음
profile(main_lang="자바", age=25, name="김태호")   #김태호 25 자바
반응형

'프로그래밍 > Python' 카테고리의 다른 글

26. 지역변수와 전역변수  (0) 2023.05.24
25. 가변인자  (0) 2023.05.24
23. 전달값과 반환값  (1) 2023.05.24
22. 함수  (0) 2023.05.24
21. 한 줄 for  (0) 2023.05.24
def deposit(balance, money):     #입금
    print("입금이 완료 되었습니다. 잔액은 {0}원 입니다.".format(balance+money))
    return balance + money    #반환 

def withdraw(balance, money):  #출금
    if balance >= money:  #잔액이 출금할 돈 보다 많을 때
        print("출금이 완료 되었습니다. 잔액은 {0}원 입니다.".format(balance - money))
        return balance - money
    else:
        print("출금이 완료되지 않았습니다.잔액은 {0}원 입니다.".format(balance))
        return balance
balance = 0
balance = deposit(balance, 1000)   #입금이 완료 되었습니다. 잔액은 1000원 입니다.
balance = withdraw(balance, 500)   #출금이 완료 되었습니다. 잔액은 500원 입니다.
반응형

'프로그래밍 > Python' 카테고리의 다른 글

25. 가변인자  (0) 2023.05.24
24. 기본  (0) 2023.05.24
22. 함수  (0) 2023.05.24
21. 한 줄 for  (0) 2023.05.24
20. continue/ break  (0) 2023.05.24
def open_account():
    print("새로운 계좌가 생성되었습니다.")

open_account()  #함수는 호출을 해줘야 출력이 된다.
반응형

'프로그래밍 > Python' 카테고리의 다른 글

24. 기본  (0) 2023.05.24
23. 전달값과 반환값  (1) 2023.05.24
21. 한 줄 for  (0) 2023.05.24
20. continue/ break  (0) 2023.05.24
19. while(반복문)  (0) 2023.05.24
#출석번호가 1 2 3 4, 앞에 100을 붙이기로 함-> 101, 102, 103, 104
students = [1,2,3,4,5]
print(students)
students = [i+100 for i in students]
print(students)

#학생 이름을 길이로 변환
students = ["iron man", "Thor", "groot"]
students = [len(i) for i in students]    #lenth 문자열이나 값의 길이
print(students)

#학생 이름 대문자로 변환
students = ["iron man", "Thor", "groot"]
students = [i.upper() for i in students]
print(students)
반응형

'프로그래밍 > Python' 카테고리의 다른 글

23. 전달값과 반환값  (1) 2023.05.24
22. 함수  (0) 2023.05.24
20. continue/ break  (0) 2023.05.24
19. while(반복문)  (0) 2023.05.24
18. for(반복문)  (0) 2023.05.22
#continue
#결석한 학생 번호를 건너띄고 실행 
absent = [2, 5]  #결석
for student in range(1,11):   #1~10까지 출석번호
    if student in absent:
        continue   #if 조건문에 해당되면 스킵하고 다음 번호로 넘어감 1,3,4,6,7,8,9,10
    print("{0}, 책을 읽어봐.".format(student))

#break
absent = [2, 5]  #결석
no_book = [7]  #책을 안가져옴
for student in range(1,11):   #1~10까지 출석번호
    if student in absent:
        continue
    elif student in no_book:
        print("오늘 수업 끝. {0}는 교무실로 와.".format(student))
        break   #뒤에 반복문이 있어도 반복문 탈출. 종료됨.
    print("{0}, 책을 읽어봐.".format(student))
반응형

'프로그래밍 > Python' 카테고리의 다른 글

22. 함수  (0) 2023.05.24
21. 한 줄 for  (0) 2023.05.24
19. while(반복문)  (0) 2023.05.24
18. for(반복문)  (0) 2023.05.22
17. if(조건문)  (0) 2023.05.22
customer = "토르"
index = 5
while index >=1:             #while 조건: 어떤 조건이 만족할때까지 반복문
    print("{0}, 커피가 준비 되었습니다. {1}번 남았습니다.".format(customer, index))
    index -= 1   #index를 1씩 줄여나감
    if index == 0:
        print("커피는 폐기되었습니다.")

#무한루프 
customer = "아이언맨"
index = 1
while True:    #계속 부
    print("{0},커피가 준비 되었습니다. 호출 {1}회".format(customer, index)) 
    index += 1  #1씩 더함  #ctrl+c누르면 종료

#원하는 답이 나올때까지 반복
customer = "토르"
person = "Unknown"

while person != customer :     #person 이름이 customer와 일치하지 않으면 계속 반복
    print("{0}, 커피가 준비되었습니다.".format(customer))
    person = input("이름이 어떻게 되세요? ")
반응형

'프로그래밍 > Python' 카테고리의 다른 글

21. 한 줄 for  (0) 2023.05.24
20. continue/ break  (0) 2023.05.24
18. for(반복문)  (0) 2023.05.22
17. if(조건문)  (0) 2023.05.22
16. shuffle , sample  (0) 2023.05.22

+ Recent posts