2020 12 31函式其他

2021-10-13 13:44:06 字數 2466 閱讀 3480

三元表示式:

x=20

y=15

res=

"yes"

if x>y else

"no"

條件:x>y 一元

條件成立:yes 一元

條件不成立:no 一元

生成式:列表生成式

l = [i for i in range(10)]#一行**生成10以內的列表

衍生:l = [i for i in range(10) if i>5] #生成大於五的列表

列表生成式可以套多個for迴圈但不建議,套多個降低了**可讀性

例:

names =

[lxx,hxx,wxx]

l=[name+

"_sb"

for name in names]

print

(l)

例:

names =

["egon"

,"lxx_sb"

,"hxx_sb"

,"wxx_sb"

]l =

[name,

for i in names ifname.endswith(

"sb")]

print l

字典生成式:

例:res =

print(res)

集合生成式:

例:res =

生成器表示式:

例:res = (i for i in range(3))

print(res)

上面是生成乙個0到3生成器,括號裡可以加判斷

綜上所述:

生成的是列表,{}生成的是字典和集合,()是生成的生成器

函式的遞迴呼叫:

再呼叫函式的內部又呼叫自己,所以遞迴呼叫的本質就是乙個迴圈的過程

不終止的話,會無限迴圈,將記憶體空間佔滿

預設遞迴深度為1000次

遞迴兩個階段:優點:基於函式的迴圈,如果想重複執行某段函式,將它加入它自己函式體內即可

1、回溯:向下層一層一層呼叫

2、遞推:向上層一層一層返回

例:

import sys

sys.getrecursionlimit(

)sys.setrecursionlimit(10)

deff1

(n):

print

('from f1'

,n)f1(n+1)

f1(1

)#import sys

#sys.setrecursionlimit() #更改遞迴深度

nums =[1

,[2,

[3,[

4,[5

,[6,

[7]]

]]]]

]def

get(l)

:for num in l:

iftype

(num)

islist

: get(num)

else

:print

(num)

get(nums)

用遞迴呼叫實現二分法:

nums =[-

3,1,

3,7,

13,23,

37,43,

57,63,

77,91,

103]

i=33

deffind

(nums,i)

:print

(nums)

iflen

(nums)==0

:print

("not num"

)return

mid_index=

len(nums)//2

if i>nums[mid_index]

: find(nums[mid_index+1:

],i)

elif i: find(nums[

:mid_index]

,i)elif i==nums[mid_index]

:print

("you got it"

)

匿名函式:沒有名字的函式

特點:臨時只能用一次

lambda 不用跟**塊,匿名函式一行即可

例:res=(lambda x,y:x+y)(1,5)

print(res)

內建函式:

max,min 比大小

sort 排序

map面向過程程式設計:主要就是一種面向過程的程式設計思想

核心在過程二字,過程就是解決問的步驟,即先乾啥,在幹啥,後幹啥

所以基於該思想編寫程式就好比設計一條條的流水線

優點:複雜的問題流程化、進而簡單化

缺點:牽一髮而動全身,擴充套件性差,

2020 12 31 建立程序

bool createprocessa lpstr lpcommandline,指向乙個以null結尾的字串,該字串指定要執行的命令列。lpsecurity attributes lpprocessattributes,指向乙個security attributes結構體,這個結構體決定是否返回的控...

2020 12 31 輸出月曆

includeint main 首先是輸出頭行,這個不用多說。第二個是將輸入的數作為週幾,加入輸出計數器中,使得每輸出到週六時就可以換行。第三,設定乙個單獨的變數,輸出這是幾號。第四,為了使輸出對齊,用取餘的方法判斷這是一行中第幾個數,如果不是第乙個數就多輸出乙個空格,第七個輸出之後輸出換行符。基本...

20201231 無重疊區間

給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。注意 可以認為區間的終點總是大於它的起點。區間 1,2 和 2,3 的邊界相互 接觸 但沒有相互重疊。示例 1 輸入 1,2 2,3 3,4 1,3 輸出 1解釋 移除 1,3 後,剩下的區間沒有重疊。示例 2 輸入 1,2 1,2...