亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

python中不存在2^n(2的n次方)這種表達方式嘛?

sum?=?0
x?=?1
n?=?1
while?True:
????sum=sum+x
????x=2^n
????n=n+1
????if?n>20:
????????break
print?sum

求1+2+4+……的前20項和,無法執行


正在回答

5 回答

^這個符號不是計算機語言,求次方用兩個**,即x=2**n

1 回復 有任何疑惑可以回復我~
#1

番茄愛上西紅柿_Q 提問者

感激,用**代替^就能運行啦!
2017-02-28 回復 有任何疑惑可以回復我~

^這個符號在Python里叫按位異或(學過關系代數或離散數學肯定懂)。**才是指數

0 回復 有任何疑惑可以回復我~

因為第一項為2的0次方,所以前20項只到2的19次方,所以可將代碼調整兩處,使其計算少幾步

?x=2**n

sum+=x

n=n+1

?if n>19:

?????break

?

1 回復 有任何疑惑可以回復我~
#1

番茄愛上西紅柿_Q 提問者

看了兩遍發現你這段代碼的問題啦~ 求和是從1 開始累加的,如果先x=2**n的話就落掉1了我覺得,你看下是不是~
2017-02-28 回復 有任何疑惑可以回復我~
#2

丶風中的承諾 回復 番茄愛上西紅柿_Q 提問者

是滴,抱歉。改成這樣 sum = 0 n = 0 while True: sum+=2**n n+=1 if n>19: break print sum
2017-02-28 回復 有任何疑惑可以回復我~
#3

番茄愛上西紅柿_Q 提問者 回復 丶風中的承諾

嗯嗯,這個是對的 突然想到了另一個問題,sum+=2**n(一句) 和sum=sum+x x=2**n(拆成兩句) 編程之后對這兩種表達方式的處理速度是一樣的嘛?還是說一句會更快點呢?
2017-02-28 回復 有任何疑惑可以回復我~
#4

丶風中的承諾 回復 番茄愛上西紅柿_Q 提問者

不懂,哈哈哈。但寫起來簡單,代碼優化
2017-02-28 回復 有任何疑惑可以回復我~
查看1條回復

這個好像是沒有的。不過可以用pow(2,n)這個函數

0 回復 有任何疑惑可以回復我~
#1

番茄愛上西紅柿_Q 提問者

好噠,等學到函數的時候試一下,謝謝~
2017-02-28 回復 有任何疑惑可以回復我~

不存在


1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758392    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

python中不存在2^n(2的n次方)這種表達方式嘛?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號