函数的基本使用
1. # 定义一个对整数n求阶乘的函数 2. def jc(n): 3. s = 1 4. for i in range(2, n): 5. s *= i 6. return s 7. print(jc(10))# 函数调用
1. #无参数返回的函数 2. >>> def PrintWorld(): 3. print("这是一个没有返回参数的函数!") 4. 5. 6. >>> PrintWorld() 7. 这是一个没有返回参数的函数! 8. >>>
1. #函数的类型 2. >>> def f(x): 3. return x+1 4. 5. >>> type(f) 6. <class 'function'> 7. >>> type(f(1)) 8. <class 'int'> 9. >>>
函数的参数传递
1. #可选参数传递 2. >>> def multiply(x,y=10): 3. print(x*y) 4. >>> multiply(99) 5. 990 6. >>> multiply(99,2) 7. 198 8. #参数名称传递 9. >>> multiply(y=5,x=25) 10. 125 11. >>>
函数的返回值
1. #单返回值 2. >>> def multiply(x,y=10): 3. return x*y 4. >>> s=multiply(99,2) 5. >>> print(s) 6. 198 7. #多返回值 8. >>> def multiply(x,y=10): 9. return x*y,x+y 10. >>> s=multiply(99,2) 11. >>> print(s) 12. (198, 101) 13. >>> a,b=multiply(99,2) 14. >>> a 15. 198 16. >>> b 17. 101 18. >>>
1. #多结束条件 多return 2. def manyret(x): 3. try: 4. if x > 0: 5. return x + 1 6. else: 7. return x - 1 8. except: 9. return 0 10. print(manyret('a'))
变量的作用域
1. >>> def multiply(x,y=10): 2. z=x*y 3. return z 4. 5. >>> s=multiply(99,2) 6. >>> print(s) 7. 198 8. >>> print(z) 9. Traceback (most recent call last): 10. File "<pyshell#52>", line 1, in <module> 11. print(z) 12. NameError: name 'z' is not defined 13. >>>
1. #全局变量的调用 global 2. >>> n=2 3. >>> def multiply(x,y=10): 4. global n 5. return x*y*n 6. >>> s=multiply(99,2) 7. >>> print(s) 8. 396 9. >>>
1. #未使用global声明 即使名称相同 也不是全局变量 2. >>> n=2 3. >>> def multiply(x,y=10): 4. n=x*y 5. return n 6. 7. >>> s=multiply(99,2) 8. >>> print(s) 9. 198 10. >>> print(n) 11. 2 12. >>>
匿名函数 lambda语法只包含一个语句:lambda [arg1 [,arg2,.....argn]]:expression
1. >>> sum = lambda arg1, arg2: arg1 + arg2 2. >>> print ("相加后的值为 : %d"%sum( 10, 20 )) 3. 相加后的值为 : 30 4. >>> print ("相加后的值为 : %d"%sum( 20, 20 )) 5. 相加后的值为 : 40
小作业:
2.实现isPrime()函数,参数为整数,要有异常处理。如果整数是质数,返回True,否则返回False。
4.编写一个函数,打印200以内的所有素数,以空格分割。
5.编写一个函数,参数为一个整数n。利用递归获取斐波那契数列中的第n个数并返回。