利用python寫出1加到任意數關於range()函數妙用的互動小程式

來源:互聯網
上載者:User

標籤:

認真!?????

------------

利用Python寫的一個從1加到任意大小的數字(電腦吃得消再說)的互動指令碼。

在這裡我運用了range函數(我喜歡叫它蟒嶺函數,因為range有“嶺”的意思),此函數可以有個有趣的用法:range(x),解譯器會列出從0~x-1的所有整數;如果是range(y,x),解譯器就會列出從從y~x-1的所有整數(x-1 等價於 不包括x,應該能夠理解吧);還有一種range(y,x,z),解譯器就會跳躍z列出從y~x-1的所有整數,預設的跳躍間距為1,就如range(y,x)等價於range(y,x,1).

看圖應該更好理解:

注意在最後一句中,range(11,2)不等價於range(0,11,2).在這裡range(11,2)被判斷為“從11~1”的所有整數,自然返回的是空的列表,而不是None,None沒有實際意義,而空的列表有實際意義。

步入正題。

#PlusCal V1.9 (alpha) by:b1ta - 2015/07/17/09:07name = raw_input("Eh,What is your name:")print "Hello," + name + "!"y = 1while y < 2:    a = input("Please enter a number:")    sum = 0    for i in range(1,a+1):        sum += i    print "Nice,1+2+3+..." ,a,"=",sum    y = input("If you want to try it again,Enter number 1,or enter other number to exit:")print name + ",Press your ‘Enter‘ to say Good-bye."exit()#Have fun!

  這是一個有缺陷的指令碼,我在for迴圈中的range的參數是(1,x+1),可以將前面的1省略,只是一個0的問題。

變數是不能轉換為字串的,但是可以混用,但要注意如果是整數型必須要用逗點(,)。使用加號的話會出現如下錯誤

>>> x=1
>>> y="a"
>>> print x+y

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
print x+y
TypeError: unsupported operand type(s) for +: ‘int‘ and ‘str‘

因為整數型不能和字串加在一起。

缺陷挺多的,比如第六行while迴圈條件可以改進<y/n>,相對應的是第11行。第6行應加入“如不是給定條件(數字)重新輸入”機制(try)。

while True:   a=None   try:       a=int(input("Please enter a number:"))   except:pass   if type(a)==int:break

  如果輸入的不是數位話則會一直迴圈

雙等號用於檢測,例如1==2得到

False

在第11行,如果輸入的是小於2的數,則繼續執行計算,如果不是,則跳出while。在這裡有個缺陷,當我輸入a時也會照樣迴圈。原因是因為這裡的變數為a,並且已經賦值了,所以命名a並不可取,於是乎將a改為num.命名最好不要隨隨便便,八竿子打不著邊到時自己也看不懂:

name = raw_input("Eh,What is your name:")print "Hello," + name + "!"y = 1while y < 2:    while True:        num=None        try:            num=int(input("Please enter a number:"))        except:pass        if type(num)==int:break    sum = 0    for i in range(1,a+1):        sum += i    print "Nice,1+2+3+..." ,num,"=",sum    y = input("If you want to try it again,Enter number 1,or enter other number to exit:")print name + ",Press your ‘Enter‘ to say Good-bye."exit()

  現在還差第6行和第15行的選擇判斷(是否繼續運算),我的方法是輸入1繼續,其他數字則退出。這個好辦,改變while的條件為:

while 0<y<2

 最後再修改下退出問題,將倒數兩行刪除,添加:

raw_input("Press your ‘Enter‘ to say Good-bye.")

把exit()是因為它會殺死解譯器,這個可以自己實驗區別比如有時候指令碼結束後還要輸入其他代碼,exit()就會在這時候“殺死”解譯器(殺死進程,就是將解譯器關了)。

最後完工:

#PlusCal V3.0 by:b1ta - 2015/07/17/15:06name = raw_input("Eh,What is your name:")print "Hello," + name + "!"y = 1while 0<y<2:    while True:        num=None        try:            num=int(input("Please enter a number:"))        except:pass        if type(num)==int:break    sum = 0    for i in range(1,num+1):        sum += i    print "Nice,1+2+3+..." ,num,"=",sum    y = input("If you want to try it again,Enter number 1,or enter other number to exit:")raw_input("Press your ‘Enter‘ to say Good-bye.")#Have fun!

  

╮( ̄▽ ̄")╭

無恥的求推薦:您有沒有對本文章感興趣呢?(正確答案:有? (? ? ?)?)

有! 沒有

×(●‘?‘●)?♥那麼點右下方的推薦吧...~\(≧▽≦)/~就這麼愉快的決定了!×(┳_┳)...

我會再努力的...(?﹏?)

那麼,為了鼓勵我,點右下方的推薦如何?? (? ? ?)?

好呀好呀!

利用python寫出1加到任意數關於range()函數妙用的互動小程式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.