本質是,讓元素換位置,逐個比較最終排序。
例1:實現a1,a2值互換:
a1 = 123a2 = 456
temp = a1
a1 = a2
a2 = temp
print(a1)
print(a2)
結果:456
123
氣泡排序:
#!/bin/bash/env python# -*- coding:utf-8 -*-
li = [22,1,5,4,3,66,22,12,34,21]
for j in range(1,len(li)):
for i in range(len(li)-1):
if li[i] > li[i+1]:
temp = li[i]
li[i] = li[i+1]
li[i+1] = temp
print(li)
結果:[1, 3, 4, 5, 12, 21, 22, 22, 34, 66]
在函式內部可以呼叫其他函式。如果乙個函式在內部呼叫自己,這個函式就是遞迴函式。
例:
#!/bin/bash/env pythondef f4(a1,a2):
if a1 > 10000:
return
print(a1)
a3 = a1 + a2
f4(a2,a3)
f4(0,1)
結果:011
2358
1321
3455
89144
233377
610987
1597
2584
4181
6765
裝飾器的目的:當要修改一段**時,而不進行內部的修改,這就需要在外部加裝飾器來達到效果。
原函式執行之前進行的操作:
#!/bin/bash/env pythondef outer(func):
def inner():
print('hello')
print('let is')
print('moumou')
r = func()
return r
return inner
@outer
def func1():
print('yes')
func1()
結果:hello
let is
moumou
yes
函式執行之後進行操作:
def outer(func):def inner():
r = func()
print('hello')
print('let is')
print('moumou')
return r
return inner
@outer
def func1():
print('yes')
func1()
結果:yes
hello
let is
moumou
@的功能:先執行outer函式,然後把發f1當做引數傳給oute。, 將outer的返回值重新賦值給f1,所以f1的函式就等於inner()
只要函式應用裝飾器,那麼函式就被重新定義,重新定義為:裝飾器的內層函式。
多個引數裝飾器傳遞:
#!/bin/bash/env pythondef outer(func):
def inner(*args,**kwargs):
print(args)
print(kwargs)
ret = func(*args,**kwargs)
return ret
return inner
@outer
def func1(a1,a2,a3):
print("yes")
return a1 + a2 +a3
func1(11,22,33)
結果:(11, 22, 33)
{}yes
多個裝飾器的應用:
#!/bin/bash/env pythondef outer(func):
def inner(*args,**kwargs):
print('cai')
ret = func(*args,**kwargs)
print('rui')
return ret
return inner
def outer1(func):
def inner1(*args,**kwargs):
print('123')
ret = func(*args,**kwargs)
return ret
return inner1
@outer1
@outer
def func1(a1,a2,a3):
print("yes")
func1(11,22,33)
結果:123
caiyes
rui
分析:
先把outer和func1看做乙個整體,把inner放在outer1中執行,然後再執行下面的
遞迴函式,氣泡排序
def func print 我是誰 func func 在python中,遞迴的深度最大到998 def foo n print n n 1foo n foo 1 遞迴的應用 我們可以使用遞迴來遍歷各種樹形結構,比如我們的資料夾系統.可以使用遞迴來遍歷該資料夾中的所有檔案 遍歷 d 作業 資料夾,...
氣泡排序的思想 python 氣泡排序 遞迴排序
氣泡排序的思想 每次比較兩個相鄰的元素,如果他們的順序錯誤就把他們交換位置 比如有五個數 12,35,99,18,76,從大到小排序,對相鄰的兩位進行比較 經過第一趟比較後,五個數中最小的數已經在最後面了,接下來只比較前四個數,依次類推 氣泡排序原理 每一趟只能將乙個數歸位,如果有n個數進行排序,只...
氣泡排序,,,,遞迴
第一種 這種方法氣泡排序 比較相鄰的兩個元素,如果前乙個比後乙個大,則交換位置。第一輪把最大的元素放到了最後面。由於每次排序最後乙個都是最大的,所以之後按照步驟1排序最後乙個元素不用比 function arr sort data arr sort arr 第二種方法時對氣泡排序的改進 宣告乙個變數...