파이썬 odd even 함수 - paisseon odd even hamsu

[파이썬/Python] 리스트에 짝수와 홀수 구분하기 

#짝수만 리턴하는 함수 만들기 

#홀수만 리턴하는 함수 만들기 #odd #even

오늘은 리스트내의 숫자 중에서 짝수와 홀수를 구분 해볼꺼에요.

짝수와 홀수를 출력하는 함수를 각각 만들어볼게요.

먼저, 사용될 리스트를 아무거나 막 숫자를 넣고 생성합니다.

lst = list({2,3,4,6,7,8,24,6,7,11,10,21,50,1})

그리고는 홀수를 리턴하는 함수를 만들어볼게요.

홀수는 2로 나누었을 때, 나머지가 1이 되는 숫자로 구분하면 되겠죠?

def printOdd(lst): for x in lst: if x % 2 == 1: print(x)

이렇게 만들 수 있겠네요!

그럼 짝수도 만들어볼게요.

짝수는 2로 나누었을 때, 나머지가 0이 되는 숫자로 구분하면 되겠죠?

def printEven(lst): for x in lst: if x % 2 == 0: print(x)

자 그럼, 각각 함수를 호출해서 제대로 동작하는지 알아봅시다!

print("Odd") printOdd(lst) print() print("Even") printEven(lst)

출력 값

Odd 1 3 7 11 21 Even 2 4 6 8 10 50 24

오호, 홀수와 짝수가 잘 구분되어서 출력되는 것 같죠?

그럼 전체 코드는 아래에 공유 해둘게요.

lst = list({2,3,4,6,7,8,24,6,7,11,10,21,50,1}) def printOdd(lst): for x in lst: if x % 2 == 1: print(x) def printEven(lst): for x in lst: if x % 2 == 0: print(x) print("Odd") printOdd(lst) print() print("Even") printEven(lst)

>> 파이썬 관련 다른 글 보러가기 <<

2021/01/07 - [#연구/#Python] - 파이썬으로 Googles SMTP 서버를 이용해서 메일을 보내보자! #파이썬으로 메일 전송 방법 #Sending Emails using Google SMTP Server #Python smtplib

파이썬으로 Googles SMTP 서버를 이용해서 메일을 보내보자! #파이썬으로 메일 전송 방법 #Sending Email

파이썬으로 Googles SMTP 서버를 이용해서 메일을 보내보자! #파이썬으로 메일 전송 방법 #Sending Emails using Google SMTP Server 시스템 관리자나 Administrator들은 시스템의 오류나 상황들을..

isss.tistory.com

2021/01/06 - [#연구/#Python] - 파이썬으로 FTP 로그인 부터 파일 업로드&다운로드까지! #파이썬 ftplib 모듈 #파이썬으로 FTP 로그인하기 #파이썬으로 FTP 파일 전송

파이썬으로 FTP 로그인 부터 파일 업로드&다운로드까지! #파이썬 ftplib 모듈 #파이썬으로 FTP 로그

파이썬으로 FTP 로그인 부터 파일 업로드&다운로드까지! #파이썬 ftplib 모듈 #파이썬으로 FTP 로그인하기 #파이썬으로 FTP 파일 전송 오늘은 FTP 서버에 파이썬 스크립트를 통해 연결하고,

isss.tistory.com

2021/01/05 - [#연구/#Python] - 파이썬에서 명령을 실행하고 응답 값을 처리 할 때, subprocess 모듈을 사용하셨다면, 이제부터는 Envoy를 사용하세요! #Python Envoy #Python wrapper subprocess module

파이썬에서 명령을 실행하고 응답 값을 처리 할 때, subprocess 모듈을 사용하셨다면, 이제부터는 En

파이썬에서 명령을 실행하고 응답 값을 처리 할 때, subprocess 모듈을 사용하셨다면, 이제부터는 Envoy를 사용하세요! #Python Envoy #Python wrapper subprocess module 파이썬에서 외부 프로세..

isss.tistory.com

2021/01/05 - [#연구/#Python] - 파이썬으로 Mysql에 값을 Insert하려면 어떻게 해야할까요? 파이썬으로 Mysql Database 다루기 #Connect to Mysql Database with Python

파이썬으로 Mysql에 값을 Insert하려면 어떻게 해야할까요? 파이썬으로 Mysql Database 다루기 #Connect to

파이썬으로 Mysql에 값을 Insert하려면 어떻게 해야할까요? 파이썬으로 Mysql Database 다루기 #Connect to Mysql Database with Python Mysql DB를 파이썬으로 다뤄봅시다. 파이썬에서는 Mysql DB를..

isss.tistory.com

문제 설명

정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.

제한 조건

  • num은 int 범위의 정수입니다.
  • 0은 짝수입니다.

입출력 예

numreturn
3 "Odd"
4 "Even"
출처: 프로그래머스 코딩테스트 연습, //programmers.co.kr/learn/courses/30/lessons/12937

나의 코드

def solution(num): return "Even" if num % 2 == 0 else "Odd"

저는 단순히 modulo 연산(%)을 통해 홀수인지 짝수인지 판별했습니다.
한 줄로 if-else 문을 처리하는 python의 삼항 연산자를 사용하면 간결하게 작성할 수 있습니다.

다른 코드

def solution(num): return ["Even", "Odd"][num & 1]

위 코드는 리스트의 index를 입력과 1의 AND 연산 결과로 사용했습니다.

만약 num 이 짝수라면 이진변환을 했을 때 마지막 자리가 0이기 때문에 num & 1 의 결과가 0이 되어 0번째 원소인 "Even"을 반환할 것이고, num 이 홀수라면 num & 1 의 결과가 1이 되어 1번째 원소인 "Odd"를 반환할 것입니다.

&는 AND 비트 연산을 한 것인데, 동작 방식을 간단히 살펴보면 아래와 같습니다.

>>> 3 & 6 2

두 수를 이진수로 변환합니다.
3 -> 11
6 -> 110

비트 단위로 AND 연산을 합니다.
202^0 자리: 1 & 0 = 0
212^1자리: 1 & 1 = 1
222^2 자리: 0 & 1 = 0

이진수로 010 이라는 결과가 나오는데, 출력은 자동으로 십진수로 변환되기 때문에 2가 출력된 것입니다.

따라서, 문제로 돌아가서, 홀수는 항상 202^0자리가 1이고 짝수는 0이기 때문에 1과 AND 비트 연산을 해줌으로써 간단하게 홀수인지 짝수인지 판별할 수 있음을 알 수 있습니다.

질문이나 오류 수정은 댓글로 남겨주세요!

Toplist

최신 우편물

태그