[TIL][Repl.it]Python_25.Nested If Statements

yejin20·2020년 9월 19일
0

TIL

목록 보기
18/30
post-thumbnail

거의 하루를 몽땅 날린 것 같은 [Repl.it] 25번 문제다...(공통 세션도 있고, 이것 저것 있기는 했지만)

if문을 짜다가 반복되는 구문이 있으면 중첩문을 사용해서 코드의 가독성을 높일 수 있다.

if status == "학생" and year >= 3:
    print("취업이 곧 다가온다!")
elif status == "학생" and year == 2:
    print("그래도 아직 놀 시간이 있네..")
elif status == "학생" and year < 2:
    print("한창 놀때지..")
else:
    print("열심히 공부 해서 대학교 부터 가라!")

계속 반복되는 status == "학생"을

if status == "학생":
    if year >= 3:
        print("취업이 곧 다가온다")
    elif year == 2:         
        print("그래도 아직 놀 시간이 있네..")
    elif year < 2:                  
        print("한창 놀때지..")
else:
    print("열심히 공부 해서 대학교 부터 가라!")

if문 안에 넣고 또 다시 if, elif, elif로 중첩을 해준다.



Assignment

다음의 방정식을 해결하는 프로그램을 구현 하세요. x값을 구해야 합니다.
ax = b
결과 출력물은 다음과 같아야 합니다.
Input 으로 주어진 a 와 b 값으로 위의 방정식을 충족하는 단 하나의 정수가 존재한다면 해당 정수를 출력하면 됩니다.
만일 a 와 b 값으로 위의 방정식을 충족하는 정수가 없다면 "No Solution"을 출력해주세요.
a 와 b 값으로 위의 방정식을 충족하는 정수가 많다면 "Many Solutions"을 출력해주세요.

Hint:
a 나 b 는 0이 될 수 있습니다.

Examples:
만일 a = 1, b = -2 라면 결과값으로 -2가 출력이 되어야 합니다.
만일 a = 2, b = -1 라면 결과값으로 "No Solution"이 출력이 되어야 합니다.


저어어어엉말 ! 오래걸렸다! 정수의 개념을 하나씩 잡아가면서 조건문을 구상했었는데...
되는 듯 싶었었는데.....

^^ ......... 수학적인 문제가 너무 컸다. 몇 년만에 접하는 정수... 무한.... 답 없음... 0.... 코드를 짤려면 이해가 필요한데 이해가 애매하게 되면 어떻게 조건을 만들어야할지 모르겠고.. 공대출신인 덕형님과 상태님의 도움을 받아 수학적인 개념을 이해한뒤(거의 암기한 뒤) 코드를 썼다.
코드를 썼다는 표현을 하기가 찝찝할 정도로 때려 넣은 기분이 들었다.
시간이 많다면 뭔가 하나하나 다시 정리하고 싶었는데 해야할 목록들이 더 많아서 일단 여기서 중요한건 if,elif,else의 개념을 잘 이해하고 쓰는 것이니까 !! 차라리 if, elif, else를 더 공부하기로 했다.

내가 작성한 코드

a = int(input())
b = int(input())

if a != 0 :
  if b % a == 0 :
    x = b // a
    print(x)
  
  else :
    print("No Solution")
    
elif a == 0 and b == 0 :
  print("Many Solutions")
  
elif a == 0 and b != 0 :
  print("No Solution")

아직도 이게 어떻게 되어버린거지? 싶은 코드 ... 3% 의 아쉬움이 있는 코드다.
나중에 다시 코드 짜봐야지 꼭.


Model Solution

a = int(input())
b = int(input())

if a == 0:
  if b == 0:
    print('Many Solutions')
  else:
    print('No Solution')
elif b % a == 0:
  print(b // a)
else:
  print('No Solution')

이 코드도 24번처럼 한줄 한줄 분해해볼거다 ...

....다음에....

profile
개(발자 어)린이입니다

0개의 댓글