1. 程式人生 > 其它 >springboot admin 監控搭建

springboot admin 監控搭建

今日總結

  • 三元表示式
  • 各種生成式
  • 匿名函式
  • 常見重要內建函式
  • 常見內建函式

三元表示式

# 三元表示式一般是出現在那種二選一的情景下,比方說比較兩個數的大小,還有單if分支判斷。
eg:
 #  一般函式:
如果使用者是jason,則列印管理員,否則列印DSB
 	username = input('username>>>:').strip()
    if username == 'jason':
        print('管理員')
    else:
        print('DSB')
# 三元表示式:
	username = input('username>>>:').strip()
    res = '管理員' if username == 'jason' else 'DSB'
    print(res)
    
# 值1 if 條件 else 值2
  條件如果成立的話就使用值1(if前面的資料)
    條件如果不成立的話就使用值2(else後面的資料)
# 三元表示式最好不要巢狀使用,因為程式碼的前提就是簡潔易讀

各種生成式(目的就是為了簡化程式碼)

# 1.列表生成式
	主要目的就是簡化程式碼
    eg:
        name_list = ['jason','kevin','tony','oscar','jerry']
        '將列表中所有的名字後面加上_DSB'
 # 列表生成式:res = [name+'_DSB' for name in name_list]
#			 print(res)
列表生成式複雜用法具備篩選能力
res = [name'_DSB' for name in name_list if name == 'jason']
print(res)
res = [name'_DSB' for name in name_list if name !== 'jason']
print(res)
#  操作流程是:1.先讀取中間for name in name_list(相當於for迴圈列表),2.第二步就是判斷if name == 'jason',最後再看前面的需求name'_DSB'.
# 列表生成式中值允許出現for和if,不能出現else,因為會產生歧義,for和if都能結合else
 
# 2.字典生成式
eg:
    l1 = ['name','age','pwd']
    l2 = ['jason',18,123]
   將上述兩個列表分別製作成字典的鍵值對
res = {l1[i]: l2[i] for i in range(len(l1))}
paint(res)  # i代表元素,就是將l1與l2列表中的元素按元素所處的位置一一對應,組成鍵值對
# res = {'name': 'jason', 'age': 18, 'pwd': 123}
res = {l1[i]:l2[i] for i in range(len(l1)) if i == 1}
print(res) # 先將l1與l2列表組合成字典,然後再索引取值取字典裡的1
# res = {'age': 18}

# 3.集合生成式
res = {i for i in range(10)}
print(res)  # 依次列印0-9,因為顧頭不顧尾
res = {i for i in range(10) if i != 2}
print(res)  # 依次列印除了2的0-9的數字


匿名函式

# 匿名函式就是指函式沒有函式名,需要結合其它函式一起使用
eg: lambda x:x+2
    # 普通函式  def index(x):
        		   return x + 2
    # 匿名函式   print(lambda x:x+2)
# max:統計最大值
l1 = [1,2,12,3,4,34,5,6,56,7,8,78,9,0,90,99]
print(max(l1))  # 直接獲取資料集中最大的值
# print(max())只能用於數字集合,如果遇上字典的話,只會預設獲取K值,而且如果K值是字串的英文字母的話,那麼它就會按照ASCII碼錶轉成與其字母對應的數字比較比較,那樣子是不準確的,所以字典的統計最大值的程式碼是:
print(max(info,key=lambda key:info[key]))
#拆解成普通函式就是:
def index(k):
    return info[k]
print(max(info,key=index))   # key對應的函式返回什麼,max就以什麼做比較的依據,比較的是v,返回的是k,key相當於是可以更改比較規則的引數

常見重要內建函式

# 1.map對映
l1 = [11,22,33,44,55]
需求:元素全部加10
	def index(n):
        return n + 10
    res = map(index,l1)
    print(list(res))  # 不能寫print(res),因為返回出來之後是一個列表
 # 匿名函式:res = map(lambda x: x + 10, l1)
		   print(list(res))
# 2.zip拉鍊
l1 = [11,22,33,44]
l2 = ['a','b','c','d']
需求:將兩個列表中的元素一一對應成對
res = zip(l1,l2)
print(list(res))
# zip能夠整合多個數據集,如果資料集裡面的元素個數不一致時,就依據元素個數少的整合
# 整合的話也可以使用列表生成式:
res = [(l1[i],l2[i]) for i in range(len(l1))]
print(res)

# 3.內建函式之filter過濾
l1 = [10,20,30,40,50]
需求:篩選出大於25的元素
def index(x):
    return x > 25
res = filter(index,l1)
print(list(res))
# 匿名函式:res = filter(lambda x:x>25,l1)
		  print(list(res))
    
# 4.reduce歸總
l1 = [1,2,3,4]
需求:將列表中所有的元素相加
# 普通函式
def index(x,y):
    return x + y
res = reduce(index,l1)
print(res)
# 匿名函式:res = reduce(lambdax,y: x + y, l1)
		  print(res)



常見內建函式

# 1.abs():獲取絕對值,不管正負數

# 2.all()與any()
l1 = [0,1,0,1,1,0,1,True]
print(all(l1))  # 結果是False,表示資料集中必須所有的元素對應的布林值為True,返回的結果才是True
print(any(l1))  # 結果是True,表示資料集中只要有元素對應的布林值為True,返回的結果就是True

# 3.bin(),oct(),hex():產生對應的機制數
# print(bin(100))    #0b1100100
# print(oct(100))    #0o144
# print(hex(100))    #0x64

# 4.bytes():型別轉換,就是任意資料型別轉二進位制
# 針對編碼與解碼,可以使用關鍵字encode與decode,也可以使用bytes和str

# 5.callable():判斷當前物件是否可以加括號呼叫
eg: name = 'a'
    def index():
        pass
    print(callable(name))   # 結果是False,變數名不能加括號呼叫
    print(callable(index))   # 結果是True,函式名可以加括號呼叫
    
# 6.chr(),ord():字元與數字的對應轉換,依據ASCII碼
    print(chr(65))     # A 根據數字轉字元
    print(ord('A'))    # 65  根據字元轉數字
    
# 7.dir()  返回資料型別可以呼叫的內建方法(檢視物件內部可呼叫的屬性)
print(dir(123))
print(dir('jason'))

# 8.divmod:相當於是數學裡的進一法,只要有餘數就進一
print(divmod(250,25))
結果是(10,0),第一個引數是整數部分,第二個是餘數部分
eg:def get_page_num(total_num,page_num):  # 後面django分頁器使用
       more,others = divmod(total_num, page_num)
      if others:
          more += 1
      print('需要%s頁'%more)
    
 # 9.enumerate() :列舉
name_list = ['a','b','c','d']
for name in name_list:
    print(name)
# 列舉:for i, j in enumerate(name_list):
			print(i,j) # i類似於是計數,預設從0開始
    	for i,j in enumerate(name_list,start=1):
            print(i,j)  # 控制起始位置
            
 # 10.eval(),exec():識別字符串中的python程式碼
	# eval(res)只能識別簡單的邏輯python程式碼
    # exec(res)能夠識別具有一定邏輯的Python程式碼