본문바로가기
자유게시판
수학을 주제로 떠들어 보세요!
[잡담] 파이썬
21세기오일러 2020.01.11 21:37 조회 896

파이썬으로 띠를 판정하는 코드를 만들었어요. 이보다 실행시간을 더 짧게 할 수 있나요?

그리고 변수를 더줄일수도 있나요? 마지막으로 코드를 더 짧게 할수도 있나요?

 

a=input("출생년도를 입력해주세요>")
a= int(a)
a%=12
if a<=5:
    if a<=2:
        if a==0:
            b="원숭이"
        elif a==1:
            b="닭"
        else:
            b="개"
    else:
        if a==3:
            b="돼지"
        elif a==4:
            b='쥐'
        else:
            b='소'
else:
    if a<=8:
        if a==6:
            b='범'
        elif a==7:
            b='토끼'
        else:
            b='용'
    else:
        if a==9:
            b='뱀'
        elif a==10:
            b='말'
        else:
            b='양'
a= "{}띠입니다.".format(b)
print(a)
  •  
    K→C≡N Lv.11 2020.01.11 23:58

    파이썬은 잘 모르지만 c언어로

    #include<stdio.h>

    int main(void)

    {

    int a;

    int b=1;

    printf("생년입력");

    scanf("%d",&a);

    while(a<=12){

    if(a==b)

        printf("%d",b);

    b++;

    }

    }

     

    그러면 숫자에 따라 자축인묘진사오미신유술해 사용자가 알아서 갔다붙이면 됩니다

    댓글 작성하기 좋아요0 댓글수1
  •  
    로보카폴리 Lv.11 2020.01.12 00:54

    if 문을 줄이기 위해 띠 배열을 만든뒤에. 년도를 나눈 나머지로 풀면 좀더 간결 할것같네요^^(근데 저는c++ 을 써서...)

    댓글 작성하기 좋아요0 댓글수1
  •  
    집돌이 페렐만 Lv.9 2020.01.12 02:48

    변수를 줄이려면 그냥 판정한 즉시 바로 출력을 하시고

    코드를 줄이시려면 맨 윗줄의 경우에는

    a = int(input("출생 연도가 뭣이여"))

    이렇게 쓰시면 됩니다.

    int(a)라고 꼭 2줄로 나눌 필요는 없으니까요

     

    댓글 작성하기 좋아요0 댓글수1
  •  
    집돌이 페렐만 Lv.9 2020.01.12 02:49

    마지막에 a를 설정하고 출력하는 것도 예쁘지만 그냥 출력문에 한 번에 하는 것도 괜찮을 듯 해요 

    예 : 

    print(b, "띠입니다.")

    댓글 작성하기 좋아요0 댓글수1
  •  
    집돌이 페렐만 Lv.9 2020.01.12 04:16

    갈릴레오 님께서 배열을 말씀하신 것 같은데 그건 좀 어려우니(...가 아니고 제가 까먹었으니) 구글에서 검색해보세유

    댓글 작성하기 좋아요0 댓글수0
  •  
    집돌이 페렐만 Lv.9 2020.01.12 04:16

    오일러 님 IDLE 쓰시나요?

    댓글 작성하기 좋아요0 댓글수2
  • 폴리매스 문제는 과학기술진흥기금 및 복권기금의 재원으로 운영되고, 과학기술정보통신부와 한국과학창의재단의 지원을 받아 수행된 성과물로 우리나라의 과학기술 발전과 사회적 가치 증진에 기여하고 있습니다.

  • ☎문의 02-6749-3911