IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    b1ta发表于 2015-07-21 02:35:00
    love 0

    认真!。◕‿◕。

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

    利用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:07
    name = raw_input("Eh,What is your name:")
    print "Hello," + name + "!"
    y = 1
    while 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 = 1
    while 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:06
    name = raw_input("Eh,What is your name:")
    print "Hello," + name + "!"
    y = 1
    while 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()函数妙用的交互小程序,转载请注明。



沪ICP备19023445号-2号
友情链接