淺談python新手中常見的疑惑及解答
1 lambda函數(shù)
函數(shù)格式是lambda keys:express 匿名函數(shù)lambda是一個表達式函數(shù),接受keys參數(shù),返回表達式的值。所以不用return,也沒有函數(shù)名,經(jīng)常用在需要key參數(shù)的函數(shù)中,比如sorted。
2 元組(),它是以逗號辨別的,而不是小括號。比如一個元素的元組新手經(jīng)常寫成(12),其實他會被解釋成單個元素12.正確的寫法應(yīng)該是(12,),在元素后面加上逗號。
3 模塊導(dǎo)入。比如
import random
print random.choice(range(10))
和
from random import choice
print choice(range(10))
新手會有一種誤解,第二種方法只導(dǎo)入了一個函數(shù),而沒有把整個模塊導(dǎo)入,這是錯誤的。整個模塊其實已經(jīng)被導(dǎo)入,只是那個函數(shù)的引用被保存了起來。所以from-import這種語法不會帶來性能上的差異,也沒有節(jié)省內(nèi)存。
4 當你有許多module,比如幾百個,想要使用時可能會想一個一個導(dǎo)入太麻煩,有沒有簡便的方法?答案是有的,就是將這些模塊組織成一個package。其實就是將模塊都放在一個目錄里,然后再加一個__init__.py文件,python會將其看作為package,使用里面的函數(shù)就可以以dotted-attribute方式來訪問。
5 參數(shù)傳遞可變對象是傳引用的,不可變對象是傳值的。那么什么對象是可變的,什么是不可變的。所有python對象都有三個屬性:類型、標識符和值,如果值是可變的就是可變對象,如果值不可變就是不可變對象。像數(shù)字、字符串、元組都是不可變對象,剩下的列表、字典、類、類實例等都是可變對象。
6 迭代器的理解,是實現(xiàn)了迭代器協(xié)議的容器對象。自己實現(xiàn)一個迭代器,類中要有__iter__()方法,該方法返回一個對象。這個對象要有__next__()方法,在next方法中的適當位置返回StopIteration異常。迭代器不經(jīng)常使用,所以不用太擔心。有替代方法就是生成器。
class MyIterator(object):
"""docstring for MyIterator"""
def __init__(self, num):
self.num = num
def __iter__(self):
return self;
def __next__(self):
if self.num <= 0:
raise StopIteration;
self.num -= 1;
return self.num;
for each in MyIterator(5):
print(each);
-> 結(jié)果
7 生成器。函數(shù)中只要出現(xiàn)了yield語句就會將其轉(zhuǎn)變成一個生成器。在遇見yield語句后會保存上下文環(huán)境,并退出函數(shù)。
注意:生成器中沒有return語句。
def fun2(num):
print("start generator");
while(num>0):
yield num;
num -=1;
a=[each for each in fun2(5)]
print(a);->結(jié)果
start generator
[5, 4, 3, 2, 1]
學(xué)習(xí)過程中,難免出錯。如果您在閱讀過程中遇到不太明白,或者有疑問。
以上這篇淺談python新手中常見的疑惑及解答就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Python 內(nèi)置庫 itertools
今天得這篇文章就來給大家介紹一下Python的系統(tǒng)庫itertools的 相關(guān)資料,需要的小伙伴可以參考下面文章的具體內(nèi)容2021-09-09
關(guān)于Python?Tkinter?復(fù)選框?->Checkbutton
這篇文章主要介紹了關(guān)于Python?Tkinter復(fù)選框Checkbutton,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
Python數(shù)據(jù)結(jié)構(gòu)隊列解決約瑟夫斯問題
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)隊列解決約瑟夫斯問題2023-02-02
只用50行Python代碼爬取網(wǎng)絡(luò)美女高清圖片
第一次寫文章,技術(shù)不成熟之處望各位大神輕噴,今天教大家只用50行Python代碼爬取網(wǎng)絡(luò)美女圖片是怎么操作的,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python的小伙伴們很有幫助哦,需要的朋友可以參考下2021-06-06
python實現(xiàn)敲木魚加功德包含加音效和敲擊動作(附demo)
敲木魚加功德是一款很火的動畫,本文主要介紹了python實現(xiàn)敲木魚加功德包含加音效和敲擊動作,具有一定的參考價值,感興趣的可以了解一下2023-11-11

