天天看點

day14 總結

1. 匿名函數

函數分為:有名函數和匿名函數。

有名:則稱有名字。 匿名:--》則沒有名字--》沒有調用方式--》職能和某些方法連用。

def f1()
    pass                

有名函數:我們之前定的函數都是有名函數,它是基于函數名使用

def func()
    print("oldboy")
func()
func()
print(func)

#oldboy
#oldboy
#<function func at 0x000001677168A318>
                

匿名函數:匿名函數,他沒有綁定名字,使用一次即被收回,加括号既可以運作

#匿名函數的文法:lambda x,y = x+y
res = (lambda x,y:x+y)(1,2)
print(res)
如果要用,就得變成有名函數
f = lambda x,y = x*y
res = f(1,2)
print(res)                

匿名函數通常和 max / min /filter /map / sorted聯用。

max :傳回最大值

res = max(1,2,3,4)
print(res) #4
res = max([1,2,3,4,5])
print(res) #5                
dic = {
    'Owen':120000
    "liang":6000
    "li":3000
    "zhang":4000
}
def func(name)
    return dic[name]
res = max(dic,key = func)
print(res)# Owen  預設key的首字母 
key = func 預設做的事情
1.循環周遊dic,會取到所有的值
2.然後把所有的key值依次入func中,傳回薪資
3.通過傳回值的薪資排序。
直接調用
res = max(max(dic,key=lambda name:dic[name])) # Owen
print(res)   #預設key的首字母                

min的用法:(取最小值)

dic = {
    'Owen':120000,
    "liang":6000,
    "li":3000,
    "zhang":4000,
}
res = min(dic,key=lambda name:dic[name])
print(res)  #"li"(取最小的值)                

fileter --->篩選:

# def function(item):  # 1/2/3/4
#     if item < 5:
#         return True
#     else:
#         return False

# res = filter(lambda item: item > 2, [1, 2, 3, 4])
# print(res)  # 疊代器
# print(list(res))  # 3,4
                    

map --> 映射 --> y = x+1

# def function1(item):
#     return item + 2
#
# res = map(function1, [1, 2, 3, ])
# print(res)
# print(list(res))  # 3,4,5                

soeted ---> 排序

def function2(item):
    return salary_dict[item]

salary_dict = {
    'nick': 3000,
    'jason': 100000,
     'tank': 5000,
     'sean': 2000,
     'z': 1000
}
res = sorted(salary_dict, key=function2, reverse=True)
print(list(res)) #['jason', 'tank', 'nick', 'sean', 'z']
                

2.内置方法

python解釋器的方法

  1. betes
  2. chr/ord
  3. divmod
  4. enumerate
  5. eval
  6. hash

betes

res = bytes('中國', encoding='utf8')
print(res)  # 把中文翻譯為二進制“b
                

chr / ord:

chr()參考ASCII碼表将數字轉成對應字元;ord()将字元轉換成對應的數字

print(chr(97))#a
print(ord("a"))#97
                

divmod:取整/取餘

分欄 ,

print(divmod(10, 3))
#(3, 1)
                

enumerate

帶索引的疊代

lt = [1, 2, 3]
for i in range(len(lt)):
    print(i, lt[i])

for ind, val in enumerate(lt):
    print(ind, val)
0 1
1 2
2 3
0 1
1 2
2 3

                

eval

把字元串翻譯成資料類型。

s = '"abc"'
print(type(eval(s)), eval(s))#<class 'str'> abc

                

hash

是否可哈希。

print(hash(1))
1
                

了解:

  1. abs
  2. all
  3. any
  4. bin/oct/hex
  5. dir
  6. frozenset
  7. gloabals/locals
  8. pow
  9. round
  10. slice
  11. sum
  12. import

1.abs()

求絕對值。

print(abs(-13))  # 求絕對值
# 13
                

2.all()

可疊代對象内元素全為真,則傳回真。

print(all([1, 2, 3, 0]))
print(all([]))
# False
# True
                

3.any()

可疊代對象中有一進制素為真,則為真。

print(any([1, 2, 3, 0]))
print(any([]))
#True
#False
                

4.bin()/oct()/hex()

二進制、八進制、十六進制轉換。

print(bin(17))
print(oct(17))
print(hex(17))
#0b10001
#0o21
#0x11
                

5.dir()

列舉出所有time的功能。

import time
print(dir(time))
 # ['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'perf_counter', 'process_time', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname', 'tzset']
                

6.frozenset()

不可變集合。

s = frozenset({1, 2, 3})
print(s)
# frozenset({1, 2, 3})
                

7.globals()/loacals()

檢視全局名字;檢視局部名字。

# gloabals/locals
# print(globals())  # 列出所有全局變量
# print('locals():', locals())


def func():
    s = 's1'
    print(globals())  # 列出所有全局變量
    print('locals():', locals())  # 列出目前位置所有變量


func()
                

8.pow()

print(pow(3, 2, 3))  # (3**2)%3
# 0
                

9.round()

print(round(3.5))
# 4
                

10.slice()

lis = ['a', 'b', 'c']
s = slice(1, 4, 1)
print(lis[s])  # print(lis[1:4:1])
# ['b', 'c']
                

11.sum()

print(sum(range(100)))
# 4950
                

12.__import__()

通過字元串導入子產品。

m = __import__('time')
print(m.time())
# 1556607502.334777
                

3.異常處理

異常處理:報錯,進行處理。

# print(1)
# num = input('請輸入數字:')
#
# dic = {'a': 1}
#
# try:
#
#     print(dic['b'])  # KeyError
#     1 / int(num)  # 報錯之後,不運作下面的代碼
#
# except ZeroDivisionError:
#     print('傻逼,不能輸入0')
# except KeyError:
#     print('傻逼,不知道什麼錯誤')
# print(2)
                
# print(1)
# num = input('請輸入數字:')
#
# dic = {'a': 1}
#
# try:
#
#     print(dic['b'])  # KeyError
#     1 / int(num)  # 報錯之後,不運作下面的代碼
#
# except Exception as e:  # 萬能異常,隻要有錯誤,就捕捉
#     print(e)  # 錯誤的描述資訊
#     print('傻逼,不知道什麼錯誤')
#
# print(2)
                

異常捕捉隻能捕捉邏輯錯誤

# fr = open('test.py')
# try:
#     # 檔案中途報錯
#     1 / 0
#     fr.close()
# except Exception as e:
#     print(e)
# finally:  # 無論你包不報錯,都執行這一行
#     print('finally')
                

轉載于:https://www.cnblogs.com/WQ577098649/p/11588047.html