-1

質問は尋ねます:

<< バックグラウンド ストーリー: 新しいハンバーガー店の POS および注文追跡システムを設計しているとします。小さなジョイントで、コンボの 4 つのオプションのみを販売しています: クラシック シングル コンボ (パティ 1 枚のハンバーガー)、クラシック ダブル チーズ コンボ (パティ 2 枚)、クラシック トリプル チーズ コンボ (パティ 3 枚)、アバンギャルド クアドラプル ウィズワカモレコンボ(パティ4枚)。これらのコンボをそれぞれ 1、2、3、および 4 としてエンコードします。各食事は、フライドポテトと飲み物の大きな箱を獲得するために、大きなサイズにすることができます。大きなサイズのコンボは、それぞれコンボ 1、2、3、および 4 に対して、それぞれ 5、6、7、および 8 で表されます。>>

order_size と呼ばれる反復関数を作成します。この関数は、注文を受け取り、注文のコンボ数を返します。たとえば、order_size(237) -> 3.

それによって私は持っているべきです

order_size(0) = 0

order_size(6) = 1

order_size(51) = 2

order_size(682) = 3

私のコードは次のとおりです。

def order_size(order):

    # Fill in your code here
    if order > 0:
        size = 0
        while order > 0:
            size +=  1
            order = order // 10
            return size
        else:
            return 0

しかし、私は注文を取得しません // 10 部分。私はそれが間違っていると推測していますが、それに代わるものは考えられません。

4

3 に答える 3

7

反復関数は必要ありません。数値を文字列に「変換」することで、数値の長さを測定できます。

num = 127
order = len(str(num))
print(order) # prints 3

ただし、本当に繰り返し実行したい場合は、次のようにします。

def order(num):
    res = 0
    while num > 0:
        num = int(num / 10)
        res += 1
    return res

print(order(127))  # prints 3
于 2014-01-30T05:17:25.090 に答える