python日誌 推導 迭代器

2021-08-20 13:02:54 字數 3605 閱讀 4126

日誌:

importlogging

log_format="%(asctime)s - %(levelname)s - %(message)s"logging.basicconfig(level=logging.debug,format=log_format)

deftest():

try:

a=int(input("請輸入乙個被除數:"))

b=int(input("請輸入乙個除數:"))

print(a/b)

returnexcept(valueerror):

logging.debug("只能輸入數字")

exceptzerodivisionerror:

logging.info("除數不能為0")

else:

print("else...")

finally:

print("程式結束")

test()

推導:

#列表推導

numbers=

# for x in range(100):

# if x % 3==0:

#用推導實現 要用中括號括起來

numbers=[xforxinrange(100)ifx % 3==0]

print(numbers)

#推導也可以裡面巢狀乙個函式

defsquared(x):

returnx*x

multiples=[squared(i)foriinrange(30)ifi % 3

is0]

print(multiples)

#字典推導 用大括號括起來

mcase=

mcase_frequency=

print(mcase_frequency)

#集合推導

squared=

print(squared) #集合裡面都是唯一的不能重複

#練習:

squares=[x**2

forxinrange(10)]

print(squares)

#把長度大於3的名字輸出大寫

names=['bob','tom','alice','jerry','wendy','smith']

aaa=[name.upper()fornameinnamesiflen(name)>3]

print(aaa)

#輸出(x,y)x0-5 偶數 y 為0-5 奇數

xx=[(x,y)forxinrange(5)ifx % 2==0

foryinrange(5)ify % 2==1]

print(xx)

#矩陣每個元素相乘

m=[[1,2,3],[4,5,6],[7,8,9]]

n=[[2,2,2],[3,3,3],[4,4,4]]

list=[[m[i][0]*n[i][0],m[i][1]*n[i][1],m[i][2]*n[i][2]]foriinrange(len(m))]

print(list)

迭代器:

fromcollectionsimportiterable

#迭代器有兩個基本方法:__iter__()和__next__()

classinterratordemo:

def__init__(self,start=0,end=0):

self.start=start

self.end=end

def__iter__(self):

returnself

#返回自己物件本身

def__next__(self):

#得到當前的指標start,讓start位移

ifself.starti=self.start#當前下標

self.start+=1

#獲取下一次下標

returni

else:

raisestopiteration()

it=interratordemo(0,5)

print(it.__next__())

print(it.__next__())

print(it.__next__())

print(it.__next__())

print(it.__next__())

生成器:

#生成器

#1.第一種實現生成器的方式,推導外面寫()

test=(xforxinrange(10))#中括號變成小括號 就是推導變成生成器了

print(test.__next__())#得到每乙個值

#2.第二種實現生成器的方式

deffeibonaqie():#菲波那切數列

a=b=1

print(a)

print(b)

foriinrange(7):

yield(a+b)

a,b=b,a+b

f=feibonaqie()

# print(f.__next__())

foriinf:

print(i)

Python的推導,迭代器,日誌

推導式包含 列表推導式 字典推導式 集合推導式 巢狀列表推導式 列表 例 names bob tom alice jerry wendy smith print name.upper for name in names if len name 3 輸出 alice jerry wendy smith...

Python推導 迭代 日誌。

迭代是python最強大的功能之一,是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。迭代器有兩個基本的方法 iter 和 next 字串,列表或元組物件都可用於建立迭代器 classrewrit...

Python異常 推導特性 迭代器 生成器

一.異常 1.語法 try 塊except 異常型別 捕獲異常後的操作 else 沒有異常發生,進入else finally 無論是否發生異常,finally總是進入 def testexception try a int input 請輸入被除數 b int input 請輸入除數 c a b e...