파이썬 def문 프로그래밍 작성법

파이썬 def문 프로그래밍 작성법

QA

파이썬 def문 프로그래밍 작성법

답변 3

본문

1794360045_1622884152.1141.pngpython IDLE로 만들어보려하는데 잘모르겠습니다 ㅠㅠ 도와주십쇼~ return 도 써서 좀 알려주십쇼~

이 질문에 댓글 쓰기 :

답변 3

https://wikidocs.net/24  ==> 참고해서 만들어 봤습니다.

 

def test1111( ):  // ==> 이 함수를 실행하면 됩니다.  될진 모르겠어요;;;

intA = int( input( "정수 A:"  ))

intB = int( input( "정수 B:"  ))

intC = int( input( "정수 C:"  ))

intD = int( input( "정수 D:"  ))

print( "최대값 : " my_max(  intA , intB , intC , intD  ) )

return ''

 

 

def my_max( a1 , a2 , a3 , a4 ) :

rst = 0

if  rst < a1 :

   rst = a1

if  rst  < a2 :

   rst = a2

if rst < a3 :

   rst = a3

if rst < a4 :

   rst = a4

 

return rst

 

안녕하세요? ^-^

 

문제의 취지가 4개의 정수를 입력받아서 그 중에서 가장 큰 수를 반환하는 함수를 작성하라는 것이죠? :)

 

 

하얀감자 님께서 스크립트의 초안을 작성하여 올려주셨는데요~

 

아쉽게도 위 함수의 경우에는 음의 정수만 4개 입력하면 0이 반환되는 문제가 있습니다 ㅠㅠ

 

기준이 되는 초기값을 시스템에서 표현할 수 있는 가장 작은 음수로 넣어야 오류가 없습니다!

 

 

파이썬3에서는 sys.maxsize가 시스템에서 표현할 수 있는 가장 큰 수이며,

 

여기에 음의 부호를 붙이면 시스템에서 표현할 수 있는 가장 작은 수가 됩니다.

 

참고로 -sys.maxsize는 -9223372036854775807 입니다 ^^

 

이를 이용하여 구현하면 다음과 같습니다.

 


import sys
 
def my_max(n1, n2, n3, n4):
    rst = -sys.maxsize
    if rst < n1:
       rst = n1
    if rst < n2:
       rst = n2
    if rst < n3:
       rst = n3
    if rst < n4:
       rst = n4
    return rst
 
intA = int(input("정수 A: "))
intB = int(input("정수 B: "))
intC = int(input("정수 C: "))
intD = int(input("정수 D: "))
print("최대값:", my_max(intA , intB , intC , intD))

 

 

그런데 다른 언어와 달리 Python 3에서는 sys.maxsize보다 큰 수를 입력받더라도 

 

오류 없이 정수형으로 처리되도록 구현되어 있는 관계로

 

사실상 정수의 최대, 최소값의 제한이 없습니다 ㅠㅠ

(반면 Python 2에서는 제한이 있습니다.)

 

아마도 출제자의 의도가 굳이 sys 모듈을 사용하지 않도록 작성하라는 것이라면

 

다음과 같이 대략적으로 처리하면 무방할 것 같습니다 ^-^

 


def my_max(n1, n2, n3, n4):
    rst = -999999999 # 아주 작은 정수값을 기준으로 합니다.
    if rst < n1:
       rst = n1
    if rst < n2:
       rst = n2
    if rst < n3:
       rst = n3
    if rst < n4:
       rst = n4
    return rst
 
intA = int(input("정수 A: "))
intB = int(input("정수 B: "))
intC = int(input("정수 C: "))
intD = int(input("정수 D: "))
print("최대값:", my_max(intA , intB , intC , intD))

 

 

참고로 위 문제의 가장 정확한 풀이는 리스트를 이용하면 됩니다.

 

list.sort()가 오름차순 정렬인 점을 활용하는 방식입니다 ^^

 

이렇게 처리해야 매우 작은 음의 정수를 입력한 경우에도 문제 없이 처리됩니다!

 


def my_max(n1, n2, n3, n4):
    temp_list = [n1, n2, n3, n4]
    temp_list.sort()
    return temp_list[-1]
 
intA = int(input("정수 A: "))
intB = int(input("정수 B: "))
intC = int(input("정수 C: "))
intD = int(input("정수 D: "))
print("최대값:", my_max(intA , intB , intC , intD))

 

 

그럼 문제를 잘 해결하시고 편안한 주말 되세요 ^-^

 

감사합니다!

https://blockdmask.tistory.com/411

 

a = [ -2, 4, 9, 1 ]   (이런 식으로 배열에 담아서 )

 

print(max(a))   ==> 이렇게 사용하면 될듯합니다.

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 21
© SIRSOFT
현재 페이지 제일 처음으로