관리 메뉴

사적공간

오름차순/ swap기능 /동시 할당(리턴) 본문

KNOU_CS/파이썬

오름차순/ swap기능 /동시 할당(리턴)

2sac 2024. 3. 22. 13:27

입력숫자 오름차순 출력 (삽질)

def sort3(a, b, c) :
    if a != b and b != c and c != a: 
        if a > b and a > c :
            if b > c:
                print("정렬된 숫자는", c,b,a, "입니다.")
            else: 
                print("정렬된 숫자는", b,c,a, "입니다.")
        elif b > a and b > c : 
            if a > c:
                print("정렬된 숫자는", c,a,b, "입니다.")
            else:
                print("정렬된 숫자는", a,c,b, "입니다.")

        elif c > a and c > b : 
            if a > b:
                print("정렬된 숫자는", b,a,c, "입니다.")
            else:
                print("정렬된 숫자는", a,b,c, "입니다.")
    else: 
        print("서로 다른 값을 입력하시오.")

a = int(input("첫번째 숫자를 입력하세요: "))
b = int(input("두번째 숫자를 입력하세요: "))
c = int(input("세번째 숫자를 입력하세요: "))
sort3(a,b,c)

 

 

입력숫자 오름차순 출력(swap 기능)

def sort3(a, b, c) : 
    if a > b:
        a, b = b, a ## 큰 수를 오른쪽으로 당김 
    if a > c: 
        a, c = c, a
    if b > c: 
        b, c = c, b

    print("함수 내에서 변화된 출력", a, b, c)

a = int(input("첫번째 숫자를 입력하세요: "))
b = int(input("두번째 숫자를 입력하세요: "))
c = int(input("세번째 숫자를 입력하세요: "))
sort3(a,b,c)

print("값에 의한 전달 출력 이므로 변화 없음:", a,b,c)

첫번째 숫자를 입력하세요: 10

두번째 숫자를 입력하세요: 1000

세번째 숫자를 입력하세요: 100

 

함수 내에서 변화된 출력 10 100 1000

값에 의한 전달 출력 이므로 변화 없음: 10 1000 100



swap 기능 

a = 1
b = 2
a, b = b, a ## swap 기능(파이썬 고유기능 ) 주의!! 마우스를 가져다 대면 각 변수에 들어있는 값이 보이는데, 이미 실행된 값으로 표시된다. 
print(a, b)

2 1

 

lvalue의 a에 swap 이후의 값 2가 들어간 것을 확인할 수 있다. 헤깔릴 수 있으니 주의(주석내용)

 

 

 

원뿔 계산 함수 / 동시 할당 

# 원뿔 계산 함수 정의
def prt_cone_vol_surf(r, h) :
    if r > 0 and h > 0 :
        # r, h 모두 양수일 때
        vol = 1/3 * 3.14 * r ** 2 * h
        surf = 3.14 * r ** 2 + 3.14 * r * h
        return vol, surf  ## (파이썬 고유기능) 두 개의 값 동시리턴 
    else :
        # r, h가 음수일 때
        print("반지름과 높이 값에 양수를 입력하세요")

vol1, surf1 = prt_cone_vol_surf(50, 100) ## 동시 리턴된 값을 순서대로 변수에 넣음 
print("vol1:",vol1, "surf1:",surf1)