2016-08-23 2 views
1

저는 파이썬에 대해 처음 접했고 간단한 프로그램을 만들려고했습니다.
주어진 수의 인수를 취하고 주어진 모든 짝수를 인쇄하는 함수를 정의하려고했습니다.
그러나 나는 얼마나 많은 숫자가 주어 졌는지, 그리고 대부분은 어떻게 처리해야하는지,보다 정확하게는 각각을 검사하는 루프를 만드는 방법을 알지 못합니다. 미리 감사드립니다!주어진 모든 인수를 살펴보고 그 값을 확인하십시오.

이 내 나쁜 코드 :

def even_number_filter(*arg): 
    a = len(sys.argv) 
    for (arg % 2 == 0): 
    print ("\n%d is an even number") % arg 

even_number_filter (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 
+0

을 살펴 보자는 [지능형리스트 (https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions) – FujiApple

답변

2

당신은 arg 자체를 반복 할 수 있습니다, 그것은 내가 이런 종류의 낙담 것이다, 그러나, 단순히 나중에 참조 할 수 있도록 인수

def even_number_filter(*arg): 
    for i in arg: 
     if i % 2 == 0: 
      print('{} is an even number'.format(i)) 

>>> even_number_filter(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 
2 is an even number 
4 is an even number 
6 is an even number 
8 is an even number 
10 is an even number 

의 튜플이다 디자인의. 대신 단순히 설정하여이 작업을 수행하려면 list 또는 tuple

+0

고맙습니다. 그런데 어떻게 내 게시물을 그렇게 빨리 편집 했습니까? 내가 끝내고 10 초 후에 문자 그대로 편집 했잖아. –

+1

많은 커피! – CoryKramer

2

같은 직접적 & 지능형리스트를 어떤 순서를 받아들이 :

print {x for x in {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} if x % 2 == 0} 
print [x for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] if x % 2 == 0] 

는 생산 :

set([8, 2, 4, 10, 6]) 
[2, 4, 6, 8, 10] 

를 사용하는 것을 시도해야 가능한 경우 이해력 (또는 생성자)을 명시 적 for 루프 이상으로 정의합니다. 처음부터 시작해서 기초를 배우려고 노력하는 것만 큼 중요하지는 않지만 좋은 습관으로 시작하는 것이 좋습니다!

0

이상적으로는 인수를 가변 인수 (목록 또는 생성자)로 사용하십시오. 그런 다음이 목록의 이해 사용할 수있는 이상적인 시간 :

def even_numbers(numbers): 
    return [ 
     num for num in numbers 
     if num % 2 == 0 
    ] 


def even_number_filter(numbers): 
    for num in even_numbers(numbers): 
     print "{0} is even".format(num) 


if __name__ == '__main__': 
    even_number_filter(range(10)) 

0 is even 
2 is even 
4 is even 
6 is even 
8 is even 
관련 문제