三目運算子 匿名函式 內建函式

2022-07-26 03:39:13 字數 2990 閱讀 9764

# 三目(元)運算子:就是 if...else...語法糖

# 前提:簡化if...else...結構,且兩個分支有且只有一條語句

# 注:三元運算子的結果不一定要與條件直接性關係

​cmd = input('cmd: ')

print('可以轉化為數字') if cmd.isdigit() else print('不可以轉化為數字')

​a = 20

b = 30

res = a if a > b else b  # 求大值

print(res)

​res = 'b為小值' if a > b else 'a為小值'  # 求小值

print(res)

# 列表推導式:[v for v in iterable]

dic =  # => [('a', 1), ('b', 2), ('c', 3)]

res = [(k, v) for k, v in dic.items()]

​# 字典推導式:

ls = [('a', 1), ('b', 2), ('c', 3)]  # =>

res =

# ***

# 遞迴:回溯與遞推

# 回溯:詢問答案的過程

# 遞推:推出答案的過程

​# 本質:函式的自我呼叫

# 直接:自己調自己

# 間接:自己調別人,別人最終又調回自己

# count = 0

# 自己調自己

# def a():

# global count

# count += 1

# if count > 50:

# return

# a()

# a()

# 函式間接呼叫自己:一旦形成迴圈呼叫,就產生了遞迴

def b():

c()def c():

d()def d():

b()b()

案例

# 詢問第乙個人年齡,回溯條件 小兩歲,第五個人說出自己的年齡,推導出第乙個人年齡

# 條件:下乙個人的年齡比這個人年紀大兩歲

def get_age(num):  # 得到年齡

if num == 1:

return 58

age = get_age(num - 1) - 2

return age

res = get_age(5)

print(res)

# 階乘

# 5! = 5 * 4!   4! = 4 * 3!   ...   2! = 2 * 1

def factorial(num):

if num == 1:

return 1

temp = num * factorial(num - 1)

return temp

res = factorial(5)

print(res)

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

# 語法:lambda 引數列表: 乙個返回值表示式

​# 重點:

# 1.匿名函式:沒有函式名,沒有函式體,只有乙個返回值

# 2.關鍵字:lambda | 引數列表省略() | 返回值return關鍵字也被省略

f = lambda x, y: (x + y, x - y)

print(f)

print(f(10, 20))

# 應用場景:

# 1.匿名函式函式位址可以被乙個變數接受,該變數就可以作為函式名來使用,但就違背了匿名初衷

# 2.結合內建函式來使用: 內建函式某些引數需要乙個函式位址,

#       -- 可以賦值乙個有名函式名,也可以直接賦值匿名函式

案例

# max

iterable = [1, 5, 3, 2, 7]

res = max(iterable, key=lambda x: x)  # 引數:可迭代物件遍歷的元素;返回值:做比較的值

print(res)

​# 薪資最高

iterable =

res = max(iterable, key=lambda x: iterable[x])  # x: 字典的k 返回值:做比較的值

print(res)

​iterable = ,

'tom': ,

'jerry': ,

'zero': ,

}res = max(iterable, key=lambda k: iterable[k]['no'])

print(res)

res = max(iterable, key=lambda k: iterable[k]['salary'])

print(res)

​# sorted

res = sorted([1, 3, 4, 2, 5], key=lambda x: x, reverse=true)

print(res)

​iterable =

res = sorted(iterable, key=lambda x: iterable[x][0])  # 按no排序

print(res)​​

# map:對映

res = map(lambda x: x + 2, [12000, 36000, 27000, 21000, 10000])

print(list(res))

​from functools import reduce

# reduce: 合併

res = reduce(lambda f, n: f * n, [1, 2, 3, 4, 5])

print(res)

三目運算子

1 概念 根據不同的條件,執行不同的操作 返回不同的值。條件1?值1 或操作1 如果滿足條件 1,就返回值 1或執行操作1 條件2?值2 或操作2 否則,如果滿足條件 2,就返回值 2或執行操作2 總結 表示式 閏年 平年 多種條件 條件 1?值1 條件2?值 值3例子 1 輸入星期四 就輸出 班級...

三目運算子

單目運算子 3 雙目運算子 3 4 三目運算子 格式 表達關係式 表示式1 表示式2 如果條件為true,運算後的結果是表示式1 如果條件為false,運算後的結果是表示式2 比較表示式 結果是乙個boolean型別 執行流程 根據比較表示式的計算返回乙個true或者false。如果是true,就把...

三目運算子

1.用控制台輸入3個整數,必須使用三目運算子使其顯示出最大值。int a,b,c console.writeline 請輸入第1個數 a int.parse console.readline console.writeline 請輸入第2個數 b int.parse console.readline...