2017-10-30 20 views
-1

사용자의 입력 인 지수의 자릿수를 찾아야합니다. 그리고 내 출력이 이렇게 보일 것입니다. 목록 요소를 추가로 표시하려면 어떻게해야합니까?목록에 파이썬으로 요소를 추가하여 표시합니다.

결과 = 27 = 2 +7 = 9

33 수가 3^같은 경우 -이 2.867972e-10과 같은 결과를 제공 (20)하는 방법 I는 숫자의 합을 찾을 수 있는가?

+0

어쩌면 부정적인 힘은 유효하지 않은 입력이어야합니다. –

+0

'2.867972e-10'에 대해 어떻게 숫자의 합계를 얻을 수 있습니까? 그것은 가장 정확한 형식의 숫자가 아니기 때문에 숫자의 합계는 의미가 없습니다. 첫 번째 예제에 동의합니다. 좋은 질문입니다 (제 의견은 내 대답 참조). –

+0

3^(- 20)은 작은 유리수이지만 작업하는 표현은 float에 대한 과학 표기법입니다. 대부분의 경우 정수의 음수를 계산할 때 올바른 결과를 나타내지는 않습니다. 그래서, 긍정적 인 힘에 대한 결과를 계산하는 것은 수학적으로 의미가 있지만, 부정적인 힘의 결과를 계산하는 것은 일종의 무작위입니다 ... – wvxvw

답변

0

당신은이 list-comprehensiongenerator A의 사용할 수 있습니다

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

는 다른 솔루션이 작동 수도 있지만 :

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

당신이 원하는 방법으로 그것을 표시하려면, 당신은 할 수있다 동시에 이해하기 쉽지 않습니다. 개인적으로 나는 을 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