日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

day011_步入百万年薪的第十一天

發布時間:2024/7/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day011_步入百万年薪的第十一天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

day11

函數名的第一類對象及使用

1、可以當作值被賦值給變量

def func():print(1)print(func) a = func a()

2、當作元素存放在容器中

def func():print(1) lst = [func,func,func] for i in lst:i()

3、函數名可以當作函數的參數

def func(f):f() def foo():print(123) func(foo) --------------------- def func(f):f() def foo():print('is foo') func(foo)

4、函數名可以當作函數的返回值

def func():def foo():print(123)return foo a = func() a() ----------------------------- def f1():def f2():print(1)def f3():print(2)return f2ret = f2()return ret print(f1())

f格式化

python3.6版本以上才能使用

  • 填充字符串
s = f"你好{'常鑫'}" s1 = F"你好{'常鑫'}"
  • 填充變量
s1 = f"你還是挺好的{s}" print(s1)
  • 填充計算公式
s1 = f"{34+11}" print(s1)
  • 填充表達式
a = 10 b = 20 s1 = f"{a if a>b else b}" print(s1)
  • 填充大括號(兩個大括號算一個)
s1 = f"{{{{{'常鑫'}}}}}" print(s1) -------------------- s1 = f"{'{}{}{}{}{}'}" print(s1)

其他填充

s1 = f"{print(123)}" print(s1) --------------------------- def prin(a):print(a) s1 = f"{prin(123)}" prin(s1) --------------------------- def foo():def func():a = 1return areturn func() s1 = f"{foo()}" print(s1) --------------------------- lst = [1,3,4,5,6] s1 = f"{lst[0:5]}" print(s1) # [1,3,4,5,6] --------------------------- dic = {"key1":123,"key2":234} s1 = f"{dic['key2']}" print(s1)

%s,format,f都是格式化,都可實現效果。

迭代器

可迭代對象

list、dict,str,tuple,set——可迭代對象

方法一:

list.__iter__() dict.__iter__() str.__iter__() set.__iter__() tuple.__iter__()

方法二:

查看源碼

方法三:

print(dir(list))

**官方聲明只要具有______iter__()方法的就是可迭代對象**

  • 可迭代對象的優點:

? 1、使用靈活

? 2、直接查看值

  • 可迭代對向的缺點:

? 消耗內存,不能迭代取值

list,tuple,str —— 索引

dict ——鍵

set——直接取值

迭代器

官方聲明只要具有______iter______()方法和______next______()方法就是迭代器

f = open("xxxx",'w') f.__iter__() f.__iter__()
  • 優點:節省內存,惰性機制

  • 缺點:使用不靈活,操作比較繁瑣,不能直接查看全部的值

  • 迭代器的特性:

    ? 1、一次性的(用完就沒有了)

    ? 2、不能逆行(不能后退)

    ? 3、惰性機制(節省內存):要一個給一個,不要就不給

  • 當容器中數據量較大的時候使用迭代器

lst = [1,2,3,4,55] new_list = lst.__iter__() # 將可迭代對象轉換成迭代器 ----------------------------- new_list.__iter__() new_list.__next__() ---------------------- s = '123455' new_s = s.__iter__() # 將可迭代對象轉換成迭代器 print(new_s) new_s.__iter__() new_s.__next__() ------------------ new_s = s.__iter__() # 將可迭代對象轉換成迭代器 print(new_s) new_s.__iter__() print(new_s.__next__()) print(new_s.__next__()) print(new_s.__next__())

for循環

s = "12343" # 更改版for的本質 s = [1,2,3,4,5,7] count = len(s) new_s = s.__iter__() while count:print(new_s.__next__())count -= 1 -------------------------------- s = "12345" new_s = s.__iter__() while True:try:print(new_s.__next__()) # for真實本質except StopIteration:break ---------------------------- 萬能報錯 # except Exception:print('我是萬能的!')break

遞歸

有效遞歸:

  • 不斷調用自己本身(自己調用自己)
  • 有明確的終止條件

遞:一直執行直到碰到結束條件

歸:從結束條件開始往回退

官方聲明:最大層次(1000)可以修改,實際測試(998或者997)

def func():print(123)func() func()def age(n): # 1,2,3if n == 3:return "猜對了"else:age(n+1) print(age(1))def age2(n):if n == 3:return "猜對了"def age1(n):if n == 3:return "猜對了"else:++age2(n+1)def age(n):if n == 3:return "猜對了"else:age1(n+1) age(1) ----------------------------------- 1.寶元 18-2-2-2 2.太白 18-2-2 3.wusir 18-2 4.alex 18def age(n):if n == 4:return 18else:return age(n+1)-2 print(age(1))def age4(n):if n == 4:return 18 def age3(n):if n == 4: # 問的是不是第四個了return 18else:return age4(n+1)-2 def age2(n):if n == 4: # 問的是不是第四個了return 18else:return age3(n+1)-2 def age1(n):if n == 4: # 問的是不是第四個了return 18else:return age2(n+1)-2 print(age1(1))

轉載于:https://www.cnblogs.com/NiceSnake/p/11211057.html

總結

以上是生活随笔為你收集整理的day011_步入百万年薪的第十一天的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。