日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

淺談python新手中常見的疑惑及解答

系統(tǒng) 1693 0

1 lambda函數(shù)

函數(shù)格式是lambda keys:express?? 匿名函數(shù)lambda是一個(gè)表達(dá)式函數(shù),接受keys參數(shù),返回表達(dá)式的值。所以不用return,也沒有函數(shù)名,經(jīng)常用在需要key參數(shù)的函數(shù)中,比如sorted。

2 元組(),它是以逗號辨別的,而不是小括號。 比如一個(gè)元素的元組新手經(jīng)常寫成(12),其實(shí)他會(huì)被解釋成單個(gè)元素12.正確的寫法應(yīng)該是(12,),在元素后面加上逗號。

3 模塊導(dǎo)入。比如

import random
print random.choice(range(10))

from random import choice
print choice(range(10))

新手會(huì)有一種誤解,第二種方法只導(dǎo)入了一個(gè)函數(shù),而沒有把整個(gè)模塊導(dǎo)入,這是錯(cuò)誤的。整個(gè)模塊其實(shí)已經(jīng)被導(dǎo)入,只是那個(gè)函數(shù)的引用被保存了起來。所以from-import這種語法不會(huì)帶來性能上的差異,也沒有節(jié)省內(nèi)存。

4 當(dāng)你有許多module,比如幾百個(gè),想要使用時(shí)可能會(huì)想一個(gè)一個(gè)導(dǎo)入太麻煩,有沒有簡便的方法? 答案是有的,就是將這些模塊組織成一個(gè)package。其實(shí)就是將模塊都放在一個(gè)目錄里,然后再加一個(gè)__init__.py文件,python會(huì)將其看作為package,使用里面的函數(shù)就可以以dotted-attribute方式來訪問。

5 參數(shù)傳遞可變對象是傳引用的,不可變對象是傳值的。 那么什么對象是可變的,什么是不可變的。所有python對象都有三個(gè)屬性:類型、標(biāo)識符和值,如果值是可變的就是可變對象,如果值不可變就是不可變對象。像數(shù)字、字符串、元組都是不可變對象,剩下的列表、字典、類、類實(shí)例等都是可變對象。

6 迭代器的理解,是實(shí)現(xiàn)了迭代器協(xié)議的容器對象。 自己實(shí)現(xiàn)一個(gè)迭代器,類中要有__iter__()方法,該方法返回一個(gè)對象。這個(gè)對象要有__next__()方法,在next方法中的適當(dāng)位置返回StopIteration異常。迭代器不經(jīng)常使用,所以不用太擔(dān)心。有替代方法就是生成器。

            
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語句就會(huì)將其轉(zhuǎn)變成一個(gè)生成器。在遇見yield語句后會(huì)保存上下文環(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í)過程中,難免出錯(cuò)。如果您在閱讀過程中遇到不太明白,或者有疑問。

以上這篇淺談python新手中常見的疑惑及解答就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!??!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 安平县| 黑龙江省| 望城县| 宁津县| 门头沟区| 嵊州市| 财经| 苏州市| 新安县| 阜新市| 青河县| 宁陕县| 浦江县| 塔城市| 徐闻县| 东方市| 龙井市| 牡丹江市| 南皮县| 宣恩县| 庄浪县| 阿巴嘎旗| 涪陵区| 南部县| 张家川| 盐山县| 望奎县| 固安县| 汉阴县| 甘谷县| 府谷县| 邻水| 大渡口区| 沂源县| 台安县| 蒲城县| 马山县| 崇仁县| 丰原市| 德庆县| 乐都县|