Laziness is the Fibonacci sequence of virtues
>>> fibs=[0,1]
>>> for I in range (8):
Fibs.append (Fibs[-2]+fibs[-1])
>>> fibs
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
Or
fibs=[0,1]
Num=input (' How many Fibonacci numbers does you want? ')
For I in Range (num-2):
Fibs.append (Fibs[-2]+fibs[-1])
Print fibs
Create a function
def hello (name):
Return ' hello ' +name+ '! '
>>> Print Hello (' world ')
helloworld!
def fibs (num):
result=[0,1]
For I in Range (num-2):
Result.append (Result[-2]+result[-1])
return result
-----------------------------
>>> fibs (10)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
>>>
Record function adds a document string to a function
def Square (x):
' Calculates the square of the number x. '
Return x*x
---------------
>>> Square.func_doc
' Calculates the square of the number x. '
>>>
>>> Help (Square)
Help on Function square in module __main__:
Square (x)
Calculates the square of the number X.
>>>
Parameters
>>> def try_to_change (n):
N= ' Mr.gumby '
>>> name= ' mrs.entity '
>>> Try_to_change (name)
>>> Name
' Mrs.entity '
>>> def Change (n):
n[0]= ' Mr.gumby '
>>> names=[' mrs.entity ', ' mrs.thing ']
>>> Change (names)
>>> names
[' Mr.gumby ', ' mrs.thing ']
>>>
Keyword parameters and default values
>>> def hello_1 (greeting,name):
Print '%s,%s '% (greeting,name)
>>> def hello_2 (name,greeting):
print '%s,%s '% (name,greeting)
>>> hello_1 (' Hello ', ' world ')
Hello, world
>>> hello_2 (' Hello ', ' world ')
Hello,world
>>> hello_1 (greeting= ' Hello ', name= ' world ')
Hello, world
>>> hello_2 (greeting= ' Hello ', name= ' world ')
World,hello
>>> def hello_3 (greeting= ' Hello ', name= ' world '):
print '%s,%s '% (greeting,name)
>>> Hello_3 ()
Hello,world
>>> hello_3 (' Greetings ')
Greetings,world
>>> hello_3 (' Greetings ', ' universe ')
Greetings,universe
>>> hello_3 (name= ' Gumby ')
Hello,gumby
>>> def hello_4 (name,greeting= ' Hello ', punctuation= '! '):
print '%s,%s%s '% (greeting,name,punctuation)
>>> hello_4 (' Mars ')
hello,mars!
>>> hello_4 (' Mars ', ' Howdy ')
howdy,mars!
>>> hello_4 (' Mars ', ' Howdy ', ' ... ')
Howdy,mars ...
>>> hello_4 (' Mars ', punctuation= '. ')
Hello,mars.
>>> hello_4 (' Mars ', greeting= ' Top of the Morning to Ya ')
Top of the morning to ya,mars!
>>> Hello_4 () #name也需要赋予默认值
Traceback (most recent):
File "<pyshell#7>", line 1, in <module>
Hello_4 ()
Typeerror:hello_4 () takes at least 1 argument (0 given)
>>>
Practice Using Parameters
>>> def Story (**kwds):
Return ' Once upon a time.there was a '% (job) s called% (name) s. '%kwds
>>> def Power (x,y,*others):
If others:
print ' recived redundant parameters: ', others
Return pow (x, y)
>>> def interval (start,stop=none,step=1):
' imitates range () for step>0 '
If stop is None:
Start , Stop=0,start
result=[]
I=start
while i<stop:
Result.append (i)
I+=step
Return result
>>> Print Story (job= ' King ', Name= ' Gumby ')
Once upon a time.there is a king called Gumby.
>>> Print Story (name= ' Sir Robin ', job= ' Brave Knight ')
Once upon a time.there was a brave knight called Sir Robi N.
>>> params={' job ': ' Language ', ' name ': ' Python '}
>>> print Story (**params)
Once upon a Time.there was a language called Python.
>>> del params[' job ']
>>> pirnt Story (job= ' stroke of genius ', **params)
SyntaxError: Invalid syntax
>>> print story (job= ' stroke of genius ', **params)
Once Upon a time.there is a stroke of geni US called Python.
>>> Power (2,3)
8
>>> Power (3,2)
9
>>> Power (y=3,x=2)
8
>> > params= (5,) * *
>>> Power (*params)
3125
>>> Power ( 3,3, ' Hello,world ')
Recived redundant parameters: (' Hello,world ',)
27
>>> interval (10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> interval (1,5)
[1, 2, 3, 4]
>>> interval (3,12,4)
[3, 7, 11]
>>> Power (*interval (3,7))
Recived Redundant parameters: (5, 6)
81
>>>
Scope
>>> x=1
>>> Scope=vars ()
>>> scope[' x ']
1
>>> scope[' x ']+=1
>>> x
2
>>> def foo ():
X=42
>>> x=1
>>> foo ()
>>> x
1
>>> def output (x):
Print X
>>> x=1
>>> y=2
>>> Output (y)
2
>>> def Combine (parameter):
Print Parameter+external
>>> external= ' Berry '
>>> combine (' shrub ')
Shrubberry
>>>
>>> x=1
>>> def change_global ():
Global X
X=x+1
>>> Change_global ()
>>> x
2
>>>
>>> def multiplier (factor):
def multiplybyfactor (number):
Return Number*factor
Return Multiplybyfactor
>>> Double=multiplier (2)
>>> Double (5)
10
>>> Triple=multiplier (3)
>>> Triple (3)
9
>>> multiplier (5) (4)
20
>>>
Recursive
>>> def factorial (n):
Result=n
For I in Range (1,n):
Result*=i
return result
>>> n=10
>>> factorial (n)
3628800
>>>
>>> def factorial (n):
If n==1:
Return 1
Else
return n factorial (n-1)
>>> factorial (10)
3628800
>>> def Power (x,n):
Result=1
For I in range (n):
Result *=x
Result result
Syntaxerror:invalid syntax
>>>
>>> def Power (x,n):
Result=1
For I in range (n):
Result *=x
return result
>>> Power (2,3)
8
>>> def Power (x,n):
If n==0:
Return 1
Else
Return X*power (x,n-1)
def search (Sequence,number,lower=0,upper=none):
If Upper is None:upper =len (sequence)-1
If Lower==upper:
Assert Number==sequence[upper]
Return Upper
Else
Middle= (Lower+upper)//2
If Number>sequence[middle]:
Return Search (Sequence,number,middle+1,upper)
Else
Return Search (Sequence,number,lower,middle)
-----------------------------------
>>> seq=[34,67,8,123,4,100,95]
>>> Seq.sort ()
>>> seq
[4, 8, 34, 67, 95, 100, 123]
>>> Search (seq,34)
2
>>> Search (seq,100)
5
Python learning Notes (functions)