91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python開發過程有哪些小技巧

發布時間:2020-07-03 14:36:59 來源:億速云 閱讀:155 作者:清晨 欄目:編程語言

這篇文章主要介紹python開發過程有哪些小技巧,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

undefined

1  字符串轉字節

將一個字符串轉換成字節類型

In [1]: s = "apple"

In [2]: bytes(s,encoding='utf-8')
Out[2]: b'apple'
2 轉為字符串

字符類型數值類型等轉換為字符串類型

In [1]: i = 100

In [2]: str(i)
Out[2]: '100'
3  轉為字典

創建數據字典

In [1]: dict()
Out[1]: {}

In [2]: dict(a='a',b='b')
Out[2]: {'a': 'a', 'b': 'b'}

In [3]: dict(zip(['a','b'],[1,2]))
Out[3]: {'a': 1, 'b': 2}

In [4]: dict([('a',1),('b',2)])
Out[4]: {'a': 1, 'b': 2}
4 轉為浮點類型

將一個整數或數值型字符串轉換為浮點數

In [1]: float(3)
Out[1]: 3.012

如果不能轉化為浮點數,則會報ValueError:

In [2]: float('a')
# ValueError: could not convert string to float: 'a'
5 轉為集合類型

返回一個set對象,集合內不允許有重復元素:

In [159]: a = [1,4,2,3,1]

In [160]: set(a)
Out[160]: {1, 2, 3, 4}
6  打開文件

返回文件對象

In [1]: fo = open('D:/a.txt',mode='r', encoding='utf-8')

In [2]: fo.read()
Out[2]: '\ufefflife is not so long,\nI use Python to play.'

mode取值表:

字符意義
'r'讀取(默認)
'w'寫入,并先截斷文件
'x'排它性創建,如果文件已存在則失敗
'a'寫入,如果文件存在則在末尾追加
'b'二進制模式
't'文本模式(默認)
'+'打開用于更新(讀取與寫入)
7  創建屬性的兩種方式

(1)返回 property 屬性,典型的用法:

class C:
    def __init__(self):
        self._x = None

    def getx(self):
        return self._x

    def setx(self, value):
        self._x = value

    def delx(self):
        del self._x
    # 使用property類創建 property 屬性
    x = property(getx, setx, delx, "I'm the 'x' property.")

   (2)使用python裝飾器,實現與上完全一樣的效果代碼:

class C:
    def __init__(self):
        self._x = None

    @property
    def x(self):
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x
8 函數的五類參數使用例子

python五類參數:位置參數,關鍵字參數,默認參數,可變位置與關鍵字參數的使用規范

def f(a,*b,c=10,**d):
    print(f'a:{a},b:{b},c:{c},d:aegqsqibtmh')12

默認參數c不能位于可變關鍵字參數d后.

調用f:

f(1,2,5,width=10,height=20)
	a:1,b:(2, 5),c:10,d:{'width': 10, 'height': 20}

可變位置參數b實參后被解析為元組(2,5);而c取得默認值10; d被解析為字典.

再次調用f:

f(a=1,c=12)a:1,b:(),c:12,d:{}

a=1傳入時a就是關鍵字參數,b,d都未傳值,c被傳入12,而非默認值。

注意觀察參數a, 既可以f(1),也可以f(a=1) 其可讀性比第一種更好,建議使用f(a=1)。如果要強制使用f(a=1),需要在前面添加一個星號:

def f(*,a,*b):  
    print(f'a:{a},b:{b}')

此時f(1)調用,將會報錯:TypeError: f() takes 0 positional arguments but 1 was given

只能f(a=1)才能OK.

說明前面的*發揮作用,它變為只能傳入關鍵字參數,那么如何查看這個參數的類型呢?借助python的inspect模塊:

In [22]: for name,val in signature(f).parameters.items():
    ...:    print(name,val.kind)
    ...:
a KEYWORD_ONLY
b VAR_KEYWORD

可看到參數a的類型為KEYWORD_ONLY,也就是僅僅為關鍵字參數。

但是,如果f定義為:

def f(a,*b):
  print(f'a:{a},b:{b}')

查看參數類型:

In [24]: for name,val in signature(f).parameters.items():
    ...:     print(name,val.kind)
    ...:
a POSITIONAL_OR_KEYWORD
b VAR_POSITIONAL

可以看到參數a既可以是位置參數也可是關鍵字參數。

9 lambda 函數的動畫演示

有些讀者反映,lambda函數不太會用,問我能不能解釋一下。

比如,下面求這個 lambda函數:

def max_len(*lists):
    return max(*lists, key=lambda v: len(v))

有兩點疑惑:

  • 參數v的取值?
  • lambda函數有返回值嗎?如果有,返回值是多少?

調用上面函數,求出以下三個最長的列表:

r = max_len([1, 2, 3], [4, 5, 6, 7], [8])
print(f'更長的列表是{r}')

程序完整運行過程,動畫演示如下:

python開發過程有哪些小技巧

結論:

  • 參數v的可能取值為*lists,也就是 tuple 的一個元素。

  • lambda函數返回值,等于lambda v冒號后表達式的返回值。

以上是python開發過程有哪些小技巧的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄梅县| 克东县| 额尔古纳市| 娱乐| 阳山县| 北海市| 湘西| 海伦市| 买车| 乌兰县| 永昌县| 炎陵县| 东宁县| 宽城| 渑池县| 浮山县| 霍山县| 休宁县| 喜德县| 江城| 平湖市| 凯里市| 新河县| 平陆县| 七台河市| 福安市| 峡江县| 涪陵区| 新和县| 拜城县| 黄山市| 五原县| 阳曲县| 琼结县| 平舆县| 来安县| 阜康市| 江北区| 河津市| 新兴县| 秀山|