计算给定数字之前的奇数

时间:2019-08-31 14:18:10

标签: python

我在代码战中遇到了卡塔问题,我试图自己解决。问题要求您在给定数字之前先计算奇数个数。 Example: With number 7, function should return 3 because there are 3 odd numbers [1, 3, 5]; with number 13, function should return 6 - [1, 3, 5, 7, 9, 11].

我已经看到了可能的结果,并且知道可以使用以下方法解决该问题:

def oddnumber(n):

return (n // 2)

但是情况是我认为我的想法应该可行,但是我是一个初学者,想了解问题所在。

先谢谢您。我尝试过:

def odd_count(n):

    i==0

    conteo==0

    for i in int(n) - 1:

        if (i%2)==0:

            conteo+=0

        else:

            conteo+=1

    i+=1

    return conteo

print(odd_count(7))

它给了我这个错误:

Traceback (most recent call last):
  File "D:\Curso Python Pildorasinformaticas\oddcount.py", line 21, in <module>
    print(odd_count(7))
  File "D:\Curso Python Pildorasinformaticas\oddcount.py", line 3, in odd_count
    i==0
UnboundLocalError: local variable 'i' referenced before assignment
[Finished in 0.2s]

2 个答案:

答案 0 :(得分:0)

首先,您将i用作循环变量,但是在将i用作循环变量之前,您已经将其分配为变量。

您还可以翻转if语句,以仅包括数字为奇数的情况。

我创建了一个快速且易于理解的解决方案,可能会对您有所帮助。

def count_odds(li,n):
    count = 0
    for i in (li):
        if i == n:
            break
        elif i % 2 != 0:
            count += 1
    return count

print(count_odds([1, 3, 5, 7, 9, 11],7))

答案 1 :(得分:0)

我找到了解决方案:

string_variable.len() or append(list_variable, x)
相关问题