2

宿題のコードの断片に取り組んでいます。

したい:

  1. ユーザー入力を取得します(n)。
  2. 入力(n)の範囲外でリストを作成します。
  3. リストを反復処理します。
  4. オッズとイーブンを数えます。
  5. 別の関数で使用するためにオッズとイーブンを返す

私は困惑しており、これは私が得た限りです:

def Input():
    n = eval(input("Enter number: "))

def GetOdds(n):
    odd_count = 0
    even_count = 0
    List_start = List[1]
    List_cont = List[1:]

    for i in range(n):
        ## I know I'll be using something like ## 
                if position % 2 == 0:
                                even_count = even_count+1
    return even_count
    return odd_count
4

3 に答える 3

4

次のようなものが必要です。

def GetOddEvenCount(n):
    odd_count = 0
    even_count = 0

    for elem in range(n):
        if elem % 2 == 0: even_count += 1
        else: odd_count += 1
    return odd_count, even_count

使用例:

odd_count, even_count = GetOddEvenCount(10)
print("Odds:", odd_count, "Evens:", even_count)

出力:

Odds: 5 Evens: 5

ただし、実際の奇数/偶数のリストではなくcountsのみを返す場合、この関数の戻り値は、次の事実を利用して O(1) 時間で自明に計算できることに注意してください。任意の偶数の整数 N の場合、戻り値は常に になり(N/2, N/2)、任意の奇数の整数 N の場合、戻り値は常に(floor(N/2), floor(N/2) + 1)

于 2013-04-20T10:15:37.230 に答える
1

returnステートメントには複数の値を含めることができます。例えば

def func():
    return 1,2

x, y = func()

その場合、関数は割り当てx = 1て、y = 2

だからあなたの場合、あなたのreturn声明を出してください

return even_count, odd_count

そして、関数を呼び出すときに使用します

even, odd = GetOdds(16)

そして、奇数と偶数の微分については、ifステートメントは正しいです。else奇数の句を追加して(またはその逆に)変更positionするiだけです。

if i % 2 == 0:
    even_count = even_count+1
else:
    odd_count = odd_count+1
于 2013-04-20T10:12:59.113 に答える