▣ 안녕하세요^^
이번장은 간단하게 10진수를 입력받아.
2진수를 바꿔 리스트에 저장해서 출력하는 코드를 공부해보겠습니다.
▣ 매번 말씀드리지만,
코딩은 정답이 없다고 생각합니다.
제 코드가 정답이라고 생각하지 마시고,
제 코드는 참고만 하시고 여러분에 방법으로 10진수를 2진수로 바꿔보세요.
▣ 먼저 10진수를 2진수로 바꾸는 방법을 공부해보겠습니다.
▣ 그림판으로 그려서 글씨가 이상한 점 이해해주세요 ^^;;
10진수를 2진수로 바꾸려면 나누기를 진행하면 됩니다.
나누기를 진행할때마다 나머지를 이렇게 옆에 표시해주세요.
나누어지지 않을때까지 진행해주시고,
나머지를 적은 부분은 화살표 방향으로 작성하면 이게 2진수입니다.
▣ 그럼 2진수를 10진수를 바꾸려면 2에 1승 2에 2승 2에 3승 이런 식으로 자리마다
곱하고 더해야하지만,
그건 어려울수있으니 이렇게 1 - 2 - 4- 8 - 16 - 32 - 64 - 128 - 256 - 512 이렇게
외우시면 계산하시기 편하실 겁니다.
그리고 1인 부분 참인부분만 더해지면 10진수가 나오게 됩니다.
자 그럼 코드로 구현해볼까요
▣ 코드로 구현할때는 곱한 값과 나머지 값을 따로 관리해주신다고 생각하시고
코드를 작성하시면 됩니다.
그럼 코드를 작성하고 해석을 하나하나 함께 해보겠습니다.
먼저 num 변수에 10진수를 입력받습니다.
그리고 2진수를 저장할 aList라는 이름에 리스트를 선언해주세요.
이제 반복문 부분이 중요합니다.
우리는 num에 값이 나누어지지 않을 때까지 나누기를 계속 진행해야 합니다.
그래서 whlie num!= 0 이 아닐 때까지 진행합니다.
그리고 아까 위에서 이야기한 것처럼 리스트에는 나머지 값이 들어가고
num에는 계속 나눈 값이 들어가야겠죠?
▣ num / 2를 연산하게 되면 결과 값이 실수형이 나오게 됩니다.
num // 2 을 하게 되면 정수형이 나오기 때문에 우리는 num //2로 진행했습니다.
그럼 whlie문을 통해서 num이 0이 될 때까지 계속 반복을 하고
리스트에는 나머지들이 저장이 됩니다.
그럼 우리가 원하는 숫자만 저장이 되고
print에서 결과를 확인하면
이상하게 반대로 나오는 걸 확인할 수 있습니다.
당연한 결과입니다. 우리는 연산한 나머지를 그대로 저장했기 때문입니다.
그럼 어떻게 해야 할까요?
네 그럴 때 reverse() 함수를 하면 됩니다.
▣ 이렇게 aList.reverse() 함수를 사용하게 되면
말 그대로 거꾸로 만들어줍니다.
그리고 출력을 해보면 결과가 제대로 나오는 걸 확인할 수 있습니다.
다른 값도 진행해볼까요?
▣ 11을 입력하게 되면 이렇게 2진수가 제대로 나오는걸 확인할 수 있습니다.
▣ 오늘은 이렇게 10진수를 2진수로 변환하는 코드를 진행했습니다.
이런 방법도 있구나라고만 생각해주시고,
꼭 직접 10진수를 2진수로 바꾸는 연산을 손으로 해보시기 바랍니다.
그래야 코드를 이해하기 쉬우실 겁니다.
그리고 여러분이 직접 이걸 함수로 바꿔보세요~~
새로운 시도를 하고 만들어야 코딩 실력이 많이 향상됩니다.
궁금하신 사항이나 질문 있으시면 댓글 남겨주세요.
그럼 다음장에서 뵙겠습니다.
▣ 포기하지 마세요!!! 저도 했습니다!!! 파이팅!!!
'[ Python ] > - 파이썬 문법공부' 카테고리의 다른 글
파이썬 17장(tkinter_01, import, GUI, random, calendar, 버튼) (0) | 2020.11.09 |
---|---|
파이썬 16장(함수_2, 전역변수, 지역변수, global, 재귀함수, 함수호출) (0) | 2020.11.03 |
파이썬 14장(함수_1, 매개변수, 가변매개변수, return, 리턴) (0) | 2020.10.22 |
파이썬 13장(딕셔너리, 튜플) (0) | 2020.10.06 |
파이썬 12장(try, except, finally, else, 예외처리) (0) | 2020.09.28 |
댓글