번호를 포함하여 숫자의 범위를 더한 함수를 만들려고했습니다.숫자를 포함하여 범위의 모든 숫자를 추가하십시오.
그래서 때 입력 5, 나는
왜이 기능이 작동하지 않습니다 (15)를 받아야한다?
def sum_nums(number):
start = 0
for index in range(0,len(number)):
start += index
return start
print sum_nums(5)
번호를 포함하여 숫자의 범위를 더한 함수를 만들려고했습니다.숫자를 포함하여 범위의 모든 숫자를 추가하십시오.
그래서 때 입력 5, 나는
왜이 기능이 작동하지 않습니다 (15)를 받아야한다?
def sum_nums(number):
start = 0
for index in range(0,len(number)):
start += index
return start
print sum_nums(5)
까지 이것은 한 라이너와 함께 할 수 있지만, 난 당신이 시도하고있는 형식의 솔루션으로 당신을 도울 것입니다 반복 할 때 달성 할 수 원하는 .
def sum_nums(number):
total = 0
for i in range(number + 1):
total += i
print total
입력 5
출력 또한 15
, 당신의 오류 메시지에 따라 약간의 설명. 문자열에 len
을 사용해야합니다. 정수에는 길이가 없습니다. 단순히 range
함수에 전달하면 1부터 해당 숫자까지의 모든 숫자 (시작 숫자를 지정하지 않은 경우)를 시도하지만 포함하지는 않습니다. 그래서 우리는 range(number + 1)
에 대상 번호를 포함시켜야합니다.
희망이 도움이 :)
이아래와 같이 'reduce'로 작성된 python을 사용하십시오. 또한 1에서 시작하여 6
reduce(lambda x, y: x+y, range(1, 6))
당신과 함께 한 라이너이 작업을 수행 할 수 있습니다
def sum_range_inclusive(number):
return sum(range(number + 1))
이 분해 : 누군가가 didn를하는 경우
가# assume number is 5 for now
number = 5
# exclusive, doesn't include the number
range(number)
# returns [0, 1, 2, 3, 4]
# inclusive, includes the number
range(number + 1)
# returns [0, 1, 2, 3, 4, 5]
# sum of inclusive range
sum([0, 1, 2, 3, 4, 5])
# returns 15
이 질문에 어긋 것 sum(range(n))
은 항상 n*(n-1)/2
입니다. 값 n
을 포함하여이 작업을 수행하려는 경우 식은 sum(range(n+1))
및 n*(n+1)/2
입니다.
'len (number)'를'number'로 바꾸어보세요. – Blorgbeard
숫자 대신 '범위'를 사용하는 대신 'len'을 사용하고 계십니까? – TigerhawkT3
또한이 코드는 오류 메시지를 표시해야합니다. 질문에 오류가 있으면 항상 포함 시키십시오. – Blorgbeard