Hướng dẫn sum of first n odd numbers python while loop - tổng của n số lẻ đầu tiên trong python vòng lặp while

Tôi mới lập trình và được yêu cầu tổng số các số lẻ từ 1 đến (2*n) -1 bằng cách sử dụng vòng lặp thời gian. Đây là nỗ lực của tôi:

def sum_odd_n(n):
    while n<2*n:
        sum = 0
        if n%2==1:
            sum = sum+n
    return (sum)

Tôi có thể biết sai lầm của mình không? Bất kỳ trợ giúp sẽ được đánh giá cao

Hỏi ngày 30 tháng 8 năm 2017 lúc 11:17Aug 30, 2017 at 11:17

Hướng dẫn sum of first n odd numbers python while loop - tổng của n số lẻ đầu tiên trong python vòng lặp while

2

Điều kiện while n<2*n: luôn đúng trong khi

def sum_odd(n):
    value = 1
    total = 0
    while value < (2*n) - 1:
        if value % 2 == 1:
            total += value
        value += 1
    return total

>>> sum_odd(25)
576
0, bạn sẽ có một vòng lặp vô hạn. Hãy thử những điều sau đây

def sum_odd(n):
    value = 1
    total = 0
    while value < (2*n) - 1:
        if value % 2 == 1:
            total += value
        value += 1
    return total

>>> sum_odd(25)
576

Để hoàn thiện, cách xử lý nhiều hơn để xử lý điều này sẽ được sử dụng

def sum_odd(n):
    value = 1
    total = 0
    while value < (2*n) - 1:
        if value % 2 == 1:
            total += value
        value += 1
    return total

>>> sum_odd(25)
576
1 với biểu thức máy phát

def sum_odd(n):
    return sum(i for i in range(1, 2*n -1) if i%2 == 1)

Đã trả lời ngày 30 tháng 8 năm 2017 lúc 11:19Aug 30, 2017 at 11:19

Hướng dẫn sum of first n odd numbers python while loop - tổng của n số lẻ đầu tiên trong python vòng lặp while

Cory Kramercory KramerCory Kramer

Huy hiệu vàng 111K1515 gold badges160 silver badges209 bronze badges

2

Gợi ý đầu tiên sẽ là xem xét tình trạng của bạn trong khi vòng lặp:

while n < 2*n

Lưu ý rằng điều này sẽ luôn luôn đúng, bởi vì nếu

def sum_odd(n):
    value = 1
    total = 0
    while value < (2*n) - 1:
        if value % 2 == 1:
            total += value
        value += 1
    return total

>>> sum_odd(25)
576
2, thì
def sum_odd(n):
    value = 1
    total = 0
    while value < (2*n) - 1:
        if value % 2 == 1:
            total += value
        value += 1
    return total

>>> sum_odd(25)
576
3 luôn lớn hơn. Nếu bạn cần thêm trợ giúp, hãy viết bình luận;)

Cập nhật: Tôi sẽ chỉ cho bạn biết điều gì là sai vì vậy nếu bạn muốn tự mình thử nó, hãy ngừng đọc. Vì vậy, về cơ bản bạn cần một biến khác, hãy nói

def sum_odd(n):
    value = 1
    total = 0
    while value < (2*n) - 1:
        if value % 2 == 1:
            total += value
        value += 1
    return total

>>> sum_odd(25)
576
4 sẽ lặp đi qua các số nguyên. Sau đó, bạn có thể làm một cái gì đó như thế này: I will just tell you what is wrong so if you want to try it out first on your own, stop reading. So basically you need another variable, let's say
def sum_odd(n):
    value = 1
    total = 0
    while value < (2*n) - 1:
        if value % 2 == 1:
            total += value
        value += 1
    return total

>>> sum_odd(25)
576
4 that will loop through integers. Then you can do something like this:

def sum_odd_n(n):
    i = n
    sum = 0
    while i < 2*n:
        if i % 2 == 1:
            sum += i
        i += 1
    print sum # for python3: print(sum)

Đã trả lời ngày 30 tháng 8 năm 2017 lúc 11:19Aug 30, 2017 at 11:19

Cory Kramercory Kramercampovski

Huy hiệu vàng 111K1516 silver badges35 bronze badges

0

>>> def sum_odd_n(n):
...     return sum([2 ** i  for i in range(0,n,1) ])
... 
>>> sum_odd_n(2)
3
>>> sum_odd_n(5)
31
>>> 

Gợi ý đầu tiên sẽ là xem xét tình trạng của bạn trong khi vòng lặp:Aug 30, 2017 at 11:22

Hướng dẫn sum of first n odd numbers python while loop - tổng của n số lẻ đầu tiên trong python vòng lặp while

Lưu ý rằng điều này sẽ luôn luôn đúng, bởi vì nếu

def sum_odd(n):
    value = 1
    total = 0
    while value < (2*n) - 1:
        if value % 2 == 1:
            total += value
        value += 1
    return total

>>> sum_odd(25)
576
2, thì
def sum_odd(n):
    value = 1
    total = 0
    while value < (2*n) - 1:
        if value % 2 == 1:
            total += value
        value += 1
    return total

>>> sum_odd(25)
576
3 luôn lớn hơn. Nếu bạn cần thêm trợ giúp, hãy viết bình luận;)Kallz

Cập nhật: Tôi sẽ chỉ cho bạn biết điều gì là sai vì vậy nếu bạn muốn tự mình thử nó, hãy ngừng đọc. Vì vậy, về cơ bản bạn cần một biến khác, hãy nói

def sum_odd(n):
    value = 1
    total = 0
    while value < (2*n) - 1:
        if value % 2 == 1:
            total += value
        value += 1
    return total

>>> sum_odd(25)
576
4 sẽ lặp đi qua các số nguyên. Sau đó, bạn có thể làm một cái gì đó như thế này:1 gold badge19 silver badges38 bronze badges

1

Campovskicampovski

def sum_odd_n(n):
while n<2*n: # n will always be less than ('<') 2*n. For eg, if n=5, 5<10.
    sum = 0 # you are resetting the sum at every iteration. We need to take this outside.
    if n%2==1:
        sum = sum+n
return (sum)

2.77916 huy hiệu bạc35 huy hiệu đồng

def sum_odd_n(n):
  sum = 0  # sum is initialized here, so that it doesn't reset inside the loop
  iterator = 0
  while iterator<2*n
    if iterator%2==1:
      sum = sum+iterator # or sum += iterator
    iterator = iterator + 1 # otherwise this will be an infinite loop, as iterator will always be 0.
  return sum

Đã trả lời ngày 30 tháng 8 năm 2017 lúc 11:22

KallzkallzAug 30, 2017 at 11:52

Hướng dẫn sum of first n odd numbers python while loop - tổng của n số lẻ đầu tiên trong python vòng lặp while

3.0961 Huy hiệu vàng19 Huy hiệu bạc38 Huy hiệu đồnglloydaf

Tôi sẽ cố gắng chỉ ra những sai lầm bạn đã làm và cố gắng đưa ra sửa chữa.3 silver badges17 bronze badges

Đây là những gì tôi nghĩ nên làm việc.

def sum_odd(n: int):
    total = 0
    for x in range(2*n):
        if x%2==1:
           total += x
    return total

Hướng dẫn sum of first n odd numbers python while loop - tổng của n số lẻ đầu tiên trong python vòng lặp while

Hy vọng điều này làm việc cho bạn. :-)

Đã trả lời ngày 30 tháng 8 năm 2017 lúc 11:522 gold badges10 silver badges25 bronze badges

LLOYDAFLLOYDAFJul 9, 2020 at 11:02

Hướng dẫn sum of first n odd numbers python while loop - tổng của n số lẻ đầu tiên trong python vòng lặp while