2017-10-30 10 views
-1

ユーザからの入力である指数の桁の和を求めなければなりません。私の出力は次のようになります。リストの要素を追加としてどのように表示できますか?リストの要素をPythonで追加表示する

結果:= 27 = 2 7 = 9

33と数が3 ^のようなものであるとき - それは2.867972e-10のような結果が得られる(20)どのように私はその数字の合計を見つけることができますか?

+0

おそらく無効な入力は無効な入力である必要があります。 –

+0

'2.867972e-10'の数字の合計はどうすればいいですか?それは最も正確な形の数字ではないので、数字の合計を意味するものではありません...私は最初の例に同意する、それは良い質問です(私の考えのための私の答えを参照してください)。 –

+0

3 ^( - 20)は小さな有理数ですが、あなたが扱う表現は浮動小数点の科学的表記法です。浮動小数点数の大部分の場合、整数の負の累乗を計算した正しい結果を表しません。したがって、正のパワーの結果を計算することは数学的な意味を持ちますが、負のパワーの結果を計算することはランダムです... – wvxvw

答えて

0

あなたはgeneratorlist-comprehensionを使用することができます。

sum(int(i) for i in str(int(input("what's the first number"))**int(input("what's the second number")))) 

あなたが行うことができ、あなたが望む方法でそれを表示するには:

base = int(input("what's the base?")) 
exponent = int(input("what's the exponent?")) 
result = base ** exponent 
digits = [int(i) for i in str(result)] 
print(base,"^",exponent,"=",'+'.join(list(str(result))),"=",sum(digits)) 
+0

これは、よくない質問に対する悪い答えです。 –

+0

なぜ@PeterWoodが説明してくれますか? –

+0

ありがとうございます。まず、結果を文字列に変換するのは、文字列を整数リストに変換して和(integer_list)を見つけましたが、リスト要素の追加を表示できませんでした。 integer_list = [8,1]とsum(integer_list)= 9と言うだけでなく、3^4 = 81 = 8 + 1 = 9のように表示したいとします。私はそれを表示する方法を知りません。 – Beyza

-1
a=3 
b=4 
s=a**b 
sl=str(s).split('e')[0].replace('.','') 
z=int(sl)%9 
print('{}^{}={}={}={}'.format(a,b,s,'+'.join(sl),z if z else 9)) 

# output 3^4=81=8+1=9 
+0

私はそれを試してみるつもりです。ありがとうございました。 – Beyza

+0

これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューの投稿者](レビュー/低品質の投稿/ 17778491) – clemens

+1

@macmoonshineごめんなさい – SmartManoj

1

他のソリューションが動作するかもしれませんが、同時に、理解することは容易ではありません。個人的には、からfunctoolsまで、あなたのような合計を集計することをお勧めします。見てください:

from functools import reduce 

num = 0.00003 ** -10 
print("num = %f" % num) 

# Remove the exponent (does nothing if there's no exponent) 
num = str(num).split('e')[0] 
print("Without exponent: %s" % num) 

# Remove the point 
num = num.replace('.', '') 
print("Without the point: %s" % num) 

# Calculate the sum 
digit_sum = reduce((lambda x, y: int(x) + int(y)), list(num)) 
print("Sum: %s" % digit_sum) 
+0

はうまくいきます。ありがとうございました – Beyza

関連する問題