利用python写出1加到任意数关于range()函数妙用的交互小程序,,认真!?????--


认真!?????

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

利用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的条件为:

while0<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()函数妙用的交互小程序

相关内容

    暂无相关文章

评论关闭