**Function**

The function is to encapsulate the code of some payload, call it directly when needed, reuse it to improve efficiency and simplify the structure of the program.

1. ** Syntax**

Define a function to use the DEF statement, write down the function name, parentheses, arguments in parentheses, colon :and then, in the indent block, write the function body, and the return value of the function is returned with a return statement.

def functionname (parms1, Parms2, ...): code block return expression

2. ** definition and invocation of functions**

#定义函数

>>> def func1 (): print "AAA" return "BBB"

Note: When defining a function in a python interactive environment, the function definition will need to be returned to the >>> prompt by pressing two times.

#调用函数

>>> a=func1 () aaa>>> print abbb

Return function: Ends the statement block and returns a value. If there is no return statement or null followed by a return, the result is returned after the function is executed, except that the result is None.

In a Linux environment, where we define functions (such as func ()) in a . py file (such as test.py), you can start the Python interpreter in the current directory of the file. Import the func () function with the FROM test-import func , and note that test is the file name (without the . py extension).

**3. Null function**

If you want to define an empty function that does nothing, you can use the PASS statement:

>>>def Func2 (): Pass

What's the use of a pass statement that doesn't do anything?

In fact, pass can be used as a placeholder, such as not yet how to write the code of the function, you can put a pass, so that the code can run. Pass can also be used in other statements, such as:

If Age >= 18:pass

Without the pass, the code will run with a syntax error.

**4. function Parameters**

>>> def func3 (name,age): #括号中的叫形参 print (Name,age) return (name,age) >>> a=func3 (' FJC ', #括号中的叫实参 (' FJC ', 25)

#参数检测

In general, a formal parameter can only have one argument, and when the function is called, if the number of arguments is incorrect, the Python interpreter automatically checks out and throws a TypeError error.

However, there are two types of parameters that can be used to correspond to multiple arguments, which are variable and keyword parameters, for example:

>>> def func4 (*name): #可变参数, there is a * print (name) >>> a=func4 (' Zhangsan ', ' Lisi ') (' Zhangsan '), ' Lisi ') #输出结果为一个元组 >>> def func5 (**dic): #关键字参数 with two x print (DIC) >>> A=func5 (zhangsan=12,l isi=15) #注意实参的格式 {' Lisi ': $, ' Zhangsan ': #输出结果为一个字典

Note: When the variable parameter and the keyword parameter appear in the same time, the variable parameter is in front, for example:

>>> def func6 (*AA,**BB): print AA print bb >>> func6 (1,2,3,a=1,b=2,c=3) (1, 2, 3) {' A ': 1, ' C ': 3, ' B ': 2

If you need to call a defined list or tuple or dictionary using a function, you need to add a * to the list or tuple before the dictionary with two *, for example:

>>> lis=[1,2,3]>>> dic={' a ': 1, ' B ':2}>>> a=[1,2,3]>>> b={' a ': 1, ' B ': 2, ' C ':3}> >> def func7 (*lis,**dic): Print (Lis,dic) >>> Func7 (*a,**b) #a前加一个 *,b before adding two * ((1, 2, 3), {' A ' : 1, ' C ': 3, ' B ': 2})

#默认参数

>>> def func8 (name,age=18): #注意: Default parameters can only be placed on the last print (name,age) >>> func8 (' Zhangsan ') of the formal parameter (' Zhangsa ') n ', 18)

#在调用函数时, arguments are not written sequentially, for example:

>>> Func8 (age=25,name= ' FJC ') #使用 "form parameter = argument" (' FJC ', 25)

**5. Recursive Functions**

Inside a function, you can call other functions. If a function calls itself internally, the function is a recursive function. For example:

#计算阶乘

>>> def func9 (n): If N==1:return n return n*func9 (n-1) >>> func9 (4) 24

The process of checking is as follows:

4*FUNC9 (3) ==>

4*3*FUNC9 (2) ==>

4*3*2*FUNC9 (1) ==>

4*3*2*1

The advantage of recursive functions is that they are simple in definition and clear in logic. In theory, all recursive functions can be written in a circular way, but the logic of the loop is not as clear as recursion.

Practice:

1.Fibonacci Sequence (Fibonacci Sequence), also known as the Golden Section, refers to a sequence of such a series:0,1,1,2,3,5,8, -, +, the、......。

Enter two random numbers to generate a similar Fibonacci sequence.

#!/usr/bin/env pythondef func (*number): Lis=[first,second] for I in range: lis1=list (Reversed (LIS)) LEST=LIS1[0]+LIS1[1] Lis.append (lest) print (LIS) first=input ("Please input the first number:") second=input ("pl Ease input The second number: ") A=func (First,second)

#这个简单程序能够实现: Enter two numbers randomly in interactive mode, base the two numbers, and output the Fibonacci sequence.

3. Output 9*9 multiplication table

#!/usr/bin/env pythondef func (n,m): For x in Range (1,10): for y in range (1,x+1): print "%d*%d=%d\t"% ( X,y,x*y), print "" Func (1,10)

**Or:**

#!/usr/bin/env pythondef func (n,m): For x in range (n,m): for y in Range (n,m): if x>=y: #设为x <=y, is another effect print "%d*%d=%d\t"% (x,y,x*y), else: continue print "" A=func (1,10)

1 , 2 , , 4 , how many three digits of a distinct and no repetition number can be formed? What's the number?

#!/usr/bin/env pythondef func (a,b,c,d): f=0 for x in (a,b,c,d): for y in (a,b,c,d): for z in (a,b,c,d): if x!=y and x!=z and z!=y: print "%d %d%d "% (x, y, z) f+=1 print "total:%d"%ffunc (1,2,3,4)

6. Find the value of s=a+aa+aaa+aaaa+aa...a , where a is a number. For example 2+22+222+2222+22222 ( there are 5 numbers added at this time ), several numbers added by the keyboard control.

#!/usr/bin/env pythondef func (n,m): x=[] for I in range (1,m+1): x.append (int ("%d"%n*i)) print sum (x) n=in Put ("Number:") m=input ("Total:") func (N,m)

This article is from the "Network Technology" blog, please be sure to keep this source http://fengjicheng.blog.51cto.com/11891287/1927664

Python notes--Custom functions