2013-03-22 13 views
5

私は現在、2桁の数字のユーザ入力を受け付け、その数字を1行に出力するプログラムを作成するためにPythonを使用しています。例については2桁の数字を受け入れるプログラムを書く#

: 私のプログラムは、ユーザからの番号を取得しますが、私は私のプログラムを印刷できるようにしたいだけの27

を使用することができます「最初の数字は2である」と「2桁目が7です」 モジュール(%)を使用しなければならないことは知っていますが、私はこれを初めて使っていて少し混乱しています!

+2

あなたは混乱していますか?あなたはどれくらい離れていますか? – Blender

+0

私はPythonを話しませんが、部分文字列関数が必要です。それを使う方法を見てください。おそらく、モジュラスを使うよりも簡単でしょう。実際、この問題を解決するためにモジュラスをどのように使うのか分かりません。 – Piccolo

+1

@HobbitHole - '%'は、文字列がフォーマット操作を行うためにオーバーロードされます。私はそれがCのprintf修飾子と類似点を共有しているからだと思います。 – mgilson

答えて

2

はこれを試してみてください:

val = raw_input("Type your number please: ") 
for i, x in enumerate(val, 1): 
    print "#{0} digit is {1}".format(i, x) 
+4

次の割り当てもできますか? – Blender

+1

@ブレンダーはありませんが、時には人が少なくともどこに行くべきかを知る必要があります。今度は彼に解決策を与え、次回はそれに対処する方法を知ります。 –

1

あなたの残りのために文字列置換、または%ため%を使用するために探しているかどうか、あなたの質問から明らかではなかったです。完全のために

、int型にモジュラス演算子を使用してmathsy方法は、次のようになります。それは文字列であるかのように

>>> val = None 
>>> while val is None: 
... try: 
...  val = int(raw_input("Type your number please: ")) 
... except ValueError: 
...  pass 
... 
Type your number please: potato 
Type your number please: 27 
>>> print 'The first digit is {}'.format(val // 10) 
The first digit is 2 
>>> print 'The second digit is {}'.format(val % 10) 
The second digit is 7 
+0

ありがとうございます!私は3桁の数字に対しても同じようにするために、どうすればいいのだろうと思っていました。 – user2197867

+0

実験があります。あなたが考えることがあれば一般化するのは簡単です... – wim

0

は2桁の数字について考えてみよう。このように各桁をつかむ方が簡単です。 str()を使用すると整数が文字列に変更されます。 Modulosでは、これらの文字列をテキストに配置することができます。

ユーザ入力を変数と呼ばれるNUMに27と仮定すると、コードは:Pythonのコーディングの

print 'The first digit is %s and the second digit is %s' % (str(num)[0], str(num)[1]) 
0

別の方法は:

val = raw_input("Type your number please: ") 
for i in list(val): 
    print i 

注:valを文字列として読み取られます。整数操作の場合は、代わりにlist(str(integer-value))を使用してください。

関連する問題