day 11 生成器 三元表示式 遞迴

2022-09-20 02:57:12 字數 1976 閱讀 7348

# 二、yield表示式

# 針對以下需求

# def func(x,y):

# if x > y:

# return x

# else:

# return y

## res=func(1,2)

# print(res)

# 三元表示式

# 語法格式: 條件成立時要返回的值 if 條件 else 條件不成立時要返回的值

x=1y=2

# res=x if x > y else y

# print(res)==> 2

res=111111 if 'egon' == 'egon' else 2222222222

print(res) ==> 111111

# 容器型別的生成式

#1、遞迴的定義

# 函式的遞迴呼叫:是函式巢狀呼叫的一種特殊形式

# 具體是指:在呼叫乙個函式的過程中又直接或者間接地呼叫到本身

# 直接呼叫本身

# def f1():

# print('是我是我還是我')

# f1()

# f1()

# 間接接呼叫本身

# def f1():

# print('===>f1')

# f2()

## def f2():

# print('===>f2')

# f1()

## f1()

# 一段**的迴圈執行的方案有兩種

# 方式一:while、for迴圈

# while true:

# print(1111)

# print(2222)

# print(3333)

# 方式二:遞迴的本質就是迴圈:

# def f1():

# print(1111)

# print(2222)

# print(3333)

# f1()

# f1()

# 2、需要強調的的一點是:

# 遞迴呼叫不應該無限地呼叫下去,必須在滿足某種條件下結束遞迴呼叫

# def f1(n):

# if n == 10:

# return

# print(n)

# n+=1

# f1(n)

## f1(0)

# 3、遞迴的兩個階段

# 回溯:一層一層呼叫下去

# 遞推:滿足某種結束條件,結束遞迴呼叫,然後一層一層返回

# age(5) = age(4) + 10

# age(4) = age(3) + 10

# age(3) = age(2) + 10

# age(2) = age(1) + 10

# age(1) = 18

# def age(n):

# if n == 1:

# return 18

# return age(n-1) + 10

## res=age(5)

# print(res)

# 4、遞迴的應用

l=[1,2,[3,[4,[5,[6,[7,[8,[9,10,11,[12,[13,]]]]]]]]]]

def f1(list1):

for x in list1:

if type(x) is list:

# 如果是列表,應該再迴圈、再判斷,即重新執行本身的**

f1(x)

else:

print(x)

f1(l)

生成器和三元表示式

一 生成器 1 生成器 生成器就是一種自定義的迭代器2 為何要用生成器 為了節省記憶體3 如何用生成器 函式體內但凡出現yield關鍵字,呼叫函式將不會觸發函式體 的執行,而是會返回乙個生成器物件,生成器本質就是乙個迭代器4 yield與return 相同點 在返回值角度用法一樣 不同點 yield...

三元表示式,生成式,生成器表示式

使用函式來寫 defmax2 x,y if x y return x else return y res max2 3,4 print res 4?使用三元表示式 x 3 y 4 res x if x y else y print res 3,4 4 函式加三元表示式 defmax2 x,y ret...

三元表示式 列表生成式 生成器表示式

1三元表示式 三元表示式是python為我們提供的一種簡化 的解決方案,語法如下 res 條件成立時返回的值 if 條件 else 條件不成立時返回的值 針對以下場景 def max2 x,y if x y print x else print y max2 1,2 用三元表示式可以一行解決 x 1...