1 for i in range(1,10,2): #for循环的使用格式
2 print (i)
3 if i == 7 :
4 break
5 else:
6 print ("The for loop is over!") #这句话在for循环结束时打印,除非遇到break
在上面代码的第一行中,我们使用中看到了for循环的使用。格式为:for .. in..:先解释一下代码第一行的作用:我们声明了一个变量i,他的取值由rang()函数决定,上面表示i从1开始到10结束,其步长为2,但是不包括10。这就有点类似我们在JAVA中这样使用for循环: 1 for(int i = 1;i < 10;i+=2) 。然后进入循环体,打印出每个i值,但是当i=7的时候,就跳出循环。这里有一点需要注意的是,如果你从for或者while循环中终止,那么任何对应的循环else块将不会被执行,也就是说,当跳出循环后,第六行将不会被执行。结果如下:
如果我们将第3,4行使用#注释掉,那么结果如下:
除了要记住上面所说的遇到break语句所产生的不同结果之外,还应该记住,else部分是可选的,如果包含else语句,那么它总是在循环结束执行一次。下面再来看看continue语句,Python中的continue语句和其他语言中(比如JAVA,C....)的continue语句作用是一样的,所以很好理解。它的作用就是跳过当前循环块中剩余的语句,然后继续执行下一轮循环。请看下面代码:
1 while True :
2 s = input('''Enter something : ''')
3 if s == 'q':
4 break
5 if len(s) < 3:
6 print("string length too short.try again.")
7 continue
8 print ("The string length is :",len(s)) #len()用来求出s的长度
9 print ("Done!")
在上面代码中,提示用户键入一些东西,如果键入字符'q',那么将会跳出循环,如果不是,那么将判断用户键入的字符串长度,如果长度小于3,用户会得到提示,并结束本次循环,不会打印出字符串的长度,如果长度大于3,那么用户会得到字符串的长度。运行结果如下:
到此我们已经了解了Python中三种控制流:if,while,for,以及与它们相关的break和continue语句。它们不仅在其他语言中需要熟练掌握,而且在Python中需要熟练掌握的。不需要死记硬背,和你之前熟悉的任何一门语言关联记忆,记住不同之处就很好掌握了。
下面我们来开始了解Python中的函数。在Python中定义一个函数使用关键字def,后面跟一个函数名,然后一对圆括号,括号中可以有参数,然后以冒号结束。先上一段比较复杂的代码,它的作用是将用户输入的十进制数转为对应的二进制表示。如果不明白这个算法的,可以参看我之前的一篇博客《十进制转二进制》。下面是Python代码:
1 #定义函数
2 def tobinary(number):
3 n = number % 2
4 if number >= 2:
5 tobinary(number >> 1)
6 out = chr(ord('0')+n)
7 #chr()将ascii码转为对应的字符
8 #ord()将字符转为对应的ascii码
9 print ("%c"%(out),end='') #end控制打印间隔
10
11 while True:
12 s = input('''Enter a number:('q' to quit)''')
13 if s == 'q':
14 break
15 elif s.isdigit():
16 tobinary(int(s))
17 else:
18 print ("your input is not correct!")
19 print(end = '\n')
20
21 print ('Game over !')
在上面代码第二行中我们使用关键字def定义了一个函数tobinary,它接收一个参数。函数的作用就是将这个参数二进制数打印输出。关于chr()和ord()函数,以及print()中的end,请参看注释。接下来进入while循环,我们判断用户输入的是否为'q',如果是,则退出程序。如果不是,我们再判断用户输入的字符串是否为数字(使用string中的isdigit()函数),如果是数字,那么进入我们定义的函数,将其二进制表示打印。如果用户输入不是数字,则提示用户输入不合法。运行结果如下:
上面的代码演示了如何定义并使用函数。还是比较简单。下面说说函数参数。在Python中,我们不仅使参数拥有默认值,也可以指定关键参数。所谓默认参数值,就是我们在调用该函数的时候,可以不对其赋值,而让它使用我们设置的默认值。请看下面代码:
1 def func(a,b=5,c=10):
2 print ('a is ',a,' and b is ',b,' and c is ',c)
3
4 func(3,7)
5 func(25,c=24)
6 func(c=20,a=100)
上面的函数中,我们将b,c设置了默认值,a没有设置。在代码第4行,我们传入了两个参数,参数a将得到3,b将得到7,参数c使用默认值10;在代码第5行中,根据实参的位置,变量a得到25,b使用默认值5,c得到24;第6行代码中,我们使用关键参数来完全指定参数值,注意:尽管在函数定义中,a在c之前定义,我们仍然可以在a之前指定参数c的值。这就是关键参数指定。其运行结果如下:
最后再说一说文档字符串docstrings。它可以使帮助我们的程序文档更加简单易懂,所以应该尽量使用它。请看下面代码:
1 def printMax(x,y):
2 '''Prints the maximum of two numbers.
3
4 The two values must be integers.'''
5 x = int(x)
6 y = int(y)
7
8 if x > y :
9 print (x,'is maximum')
10 else:
11 print (y,'is maximum')
12
13 printMax(10,20)
14 print (printMax.__doc__)
在上面函数的第一个逻辑行的字符串就是这个函数的文档字符串。我们运行结果,可以得到以下结果:
以上就是我今天所学的。欢迎各位博友多多指点。