标签:
认真!?????
------------
利用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()函数妙用的交互小程序
标签:
原文地址:http://www.cnblogs.com/b1ta/p/4663632.html