ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 Day4
    파이썬 2021. 7. 17. 19:18
    728x90

    파이썬 기초 4

    함수


    def open_account():
        print("새로운 계좌가 생성되었습니다.")
    
    
    open_account()##호출-전달하는 값이 없음
    
    #전달갑이 있는 함수
    
    #입금
    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
    
    def withdraw_night(balance, money):    #저녁에 출금
        commission = 100
        return commission, balance - money - commission  #2개의 값을 튜플로 반환
    
    
    
    
    
    balance = 0
    balance = deposit(balance, 1000)
    balance = withdraw(balance, 2000)    #출금불가
    balance = withdraw(balance, 500)   
    commission, balance = withdraw_night(balance, 500)
    print("수수료 {0}원이며, 잔액은 {1}원 입니다.".format(commission, balance))
    # print(balance)
    

    기본값


    def profile(name, age, main_lang):
        print("이름 : {0}\t 나이 : {1} \t 주 사용언어 : {2}".format(name, age, main_lang))
        #줄바꿈할때 \ + enter 사용
    
    profile('김지명', 26, 'python')
    profile("김태호", 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 = "유재석", main_lang = "파이썬", age = 25)
    profile(main_lang = "자바", age = 25, name = "김태호")

    가변인자


    def profile(name, age, lang1, lang2, lang3, lang4, lang5):
        print("이름 : {0}\t 나이 : {1}\t". format(name, age), end = " ")
        print(lang1, lang2, lang3, lang4, lang5)
    
    profile("유재석", 20, "Python", "Java", "C", "C++", "C#")
    profile("김태호", 25, "Kotlin", "Sswift", "", "", "")
    # 변수가 한정되어있어 개수를 무조건 맞춰주어야 한다는 불편함이 있음
    
    
    
    #가변인자 사용함으로써 개수에 제한을 두지 않아도 됨
    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")
    profile("김태호", 25, "Kotlin", "Swift")
    #"Javascript"를 추가하고, lang의 개수가 3개 부족해도 error 발생하지 않음

    지역변수와 전역변수


    gun = 10
    
    def checkpoint(soilders): #경계근무 수
        gun = 20
        gun = gun - soilders
        print("[함수 내] 남은 총: {0}".format(gun))
    
    print("전체 총 : {0}".format(gun))  #전체 총: 10
    checkpoint(2)  #2명경계근무 나감     #[함수 내] 남은 총: 18
    print("남은 총: {0}".format(gun))    #남은 총: 10
    // #함수가 호출되어서 사용될 경우 지역변수 안에있는 20이라는 값이 적용
    // #외부에 있는 10이라는 값은 변함이 없음
    ------------------------------------------------------------------
    // #global사용: 권장사항은 아님, 코드가 복잡해질 수 있음
    gun = 10
    
    def checkpoint(soilders): #경계근무 수
        global gun #전역 공간에 있는 gun tkdyd
        gun = gun - soilders
        print("[함수 내] 남은 총: {0}".format(gun))
    
    print("전체 총 : {0}".format(gun))  #전체 총: 10
    checkpoint(2)  #2명경계근무 나감     #[함수 내] 남은총: 8
    print("남은 총: {0}".format(gun))    #남은 총: 8
    
    ------------------------------------------------
    // # 전역변수인 "gun"의 개수를 파라미터로 받아옴
    def checkpoint_ret(gun, soilders):
        gun = gun - soilders
        print("[함수 내] 남은 총: {0}".format(gun))
        return gun
    
    print("전체 총 : {0}".format(gun))  #전체 총: 10
    gun = checkpoint_ret(gun, 2)  #2명경계근무 나감     #[함수 내] 남은총: 8
    print("남은 총: {0}".format(gun))    #남은 총: 8
    
    

    Quiz


    # *표준 체중: 각개인의 키에 적장한 체중
    
    # (성별에 따른 공식)
    # 남자 : 키(m) X 키(m) X 22
    # 여자 : 키(m) X 키(m) X 21
    
    # 조건: 표준 체중은 별도의 함수 내에서 계산
    #         * 함수명 : std_weight
    #         * 전달값 : 키(weight), 성별(gender):
    
    # 조건2 : 표중 체중은 소수점 둘재자리까지 표시
    
    # (출력예제)
    
    # 키 175cm 남자의 표준 체중은 67.38kg 입니다.
    
    def std_weight(height, gender): #키는 m 단위(실수), 성별 "남자"/ "여자"
        if gender == "남자":
            return height * height * 22
        else:
            return height * height * 21
    
    height = 175   #cm단위
    gender = "남자"
    weight = round(std_weight(height / 100, gender), 2)  #소수점 2째자리 까지
    print("키 {0}m {1}의 표준 체중은 {2}kg 입니다.".format(height, gender, weight))

    '파이썬' 카테고리의 다른 글

    파이썬 기초6  (0) 2021.07.18
    파이썬 Day5  (0) 2021.07.17
    파이썬 Day3  (0) 2021.07.17
    파이썬 Day2  (0) 2021.07.17
    파이썬 Day1  (0) 2021.07.17

    댓글

Designed by Tistory.