2016-10-19 12 views
0

Pythonの質問に問題があります。質問は、(1:x)の範囲で13で割り切れるすべての整数を表示する関数を書くことです。ここで、xはユーザー入力です。 私はPythonを初めて使い、この質問に苦労しています。私はPythonが13で割って答えを表示するユーザー入力を持つ必要があります。したがって、ユーザーが '27'を入力すると、回答は '13'と '26'になります。Python - ユーザ入力を分割して回答の範囲を表示する

これまでの私のコードは次のようになります。それだけで

x = int(raw_input('Enter your Number Here: ')) 
    def divide(x): 
cond = True 
while cond: 
    x % 13 == 0 
    print x 
else: 
    cond = False 
    print 'Your number us not divisble by 13' 

    divide(x) 
+1

あなたが条件で、 'if'が欠けているように見えます。 –

+0

if条件はどこに挿入すればよいですか?コードはよく見えますか? –

+0

便利な組み込み関数:https://docs.python.org/2/library/functions.html#xrange追加情報:他の言語では、開始値に初期化された新しい変数を作成し、それをそれが大きくなりすぎるまでループしてください。 –

答えて

0

はこれを行うことができます:

from __future__ import print_function 

x = 27/13 

print [13 * i for i in range(1,x+1)] 
+0

あなたは正しいです、それは冗長です。同じようなことがすでにどこかに敷設されていて、それに気付かなかったこともありました。 – JackTheCrab

0

x % 13 == 0は何もしません。 TrueまたはFalseと評価されますが、その結果は無視されます。あなたがそれを使って何かしたいのであれば、それをif条件で使う必要があります。

インデントが重要であることにも注意してください。elseはifで整列する必要があります。 whileの必要はありません。ループ内で何も変更できないからです。

if x % 13 == 0: 
    print x 
else: 
    print 'Your number us not divisible by 13' 
0

を代わりにあなたのような何かを行うことができます次に[1..x]の範囲にあるすべての数値が出力されます

print([y for y in range(1,x+1,1) if y%13==0]) 
+0

これは反復を節約し、非常にきれいなアプローチです – andromeda

+0

これで動作します! – andromeda

+0

@Matthew Willisそれがあなたのために働いた場合、あなたはアップ投票できますか? – andromeda

0

がバックポートされた印刷機能のPython 3を借りる:

x = int(input("Enter your number here: ")) 

def divide(x): 
    for i in range(1,x): 
     if i % 13 == 0: 
      print (i) 

divide(x) 
0

包括私は0を落とし、Xまで、13のすべての倍数を示したい:

def divide(x): 
    print range(0, x, 13)[1:] 

はデモ:

>>> divide(27) 
[13, 26] 
関連する問題