2016-09-20 10 views
0
def sumNumbers1(num1,num2): 
    sum= str(num1+num2) 
    print "Sum is " + sum 
    for char in sum: 
     digit = sum.find(char)+1 
     print "Digit " + str(digit) + " is " + char 

私は2つの数字の合計を印刷し、次に合計の最初の数字とその文字が何であるかなどを出力するようにしようとしています。しかし、合計が2つの同じ文字(たとえば77)の数字である場合、私の関数は "Sum is 77 Digit 1 is 7 Digit 1 is 7"と表示します。これはインデックスの問題ですが、修理する?ありがとう!(pythonとjes)2文字が同じ場合、文字列内の文字の位置を見つける方法は?

答えて

1

おそらくenumerateを使用します。 sumは文字列です。列挙型では、各文字のインデックスを返しながら、その文字列の文字を繰り返し処理できます。あなたが正しいですが、我々はまだ列挙を学んでいないあなたがインデックスは1から開始したい場合、あなたはi

for i, char in enumerate(sum): 
    print "Digit " + str(i+1) + " is " + char 
+0

に1を追加する必要があるので、Pythonのインデックスは、0ベースされているが、私は動作する方法を見つけた。でも、これに答える時間をとってくれてありがとう! –

0
def sumNumbers1(num1,num2): 
    sum = num1 + num2 
    print ("the sum is" , sum) 
    s = str(sum) 
    for digit,i in enumerate(s,start =1): 
     print("digit ", digit, "is", i) 

sumNumbers1(2230,20) 


def sumNumbers1(num1,num2): 

    sum = num1 + num2 
    pos = 1 
    print ("the sum is" , sum) 
    for e in str(sum): 
     print ("digit", pos,"is" , e) 
     pos += 1  


sumNumbers1(2230,20) 
+0

ようこそスタックオーバーフロー!このコードは質問に答えるかもしれませんが、なぜこのコードが質問に答えるか、および/またはどのようにして追加の文脈を提供すれば、長期的な価値が向上します。コードのみの回答はお勧めできません。 – Ajean

+0

作品!どうもありがとうございます!しかし、私はposを文字列に変換して文字列 "Digit"と "is"に追加する必要がありました。 –

関連する問題