Python易忽視知識點小結

來源:互聯網
上載者:User
這裡記錄Python中容易被忽視的小問題

一、input(...)和raw_input(...)

#簡單的差看協助文檔input(...)和raw_input(...)有如下區別 >>> help(input) Help on built-in function input in module __builtin__: input(...)   input([prompt]) -> value   Equivalent to eval(raw_input(prompt)). >>> help(raw_input) Help on built-in function raw_input in module __builtin__: raw_input(...)   raw_input([prompt]) -> string       Read a string from standard input. The trailing newline is stripped.   If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.   On Unix, GNU readline is used if enabled. The prompt string, if given,   is printed without a trailing newline before reading.   #可見 input會根據輸入的內容eval結果來傳回值,即輸入純數字,則得到的就是純數字 #     raw_input返回的才是字串 #test: >>> a = input("輸入數字") 輸入數字1 >>> type(a)  >>> b=raw_input("輸入數字") 輸入數字1 >>> type(b)  

ps:在python3.0以後的版本中,raw_input和input合體了,取消raw_input,並用input代替,所以現在的版本input接收的是字串

二、python三目運算子

雖然Python沒有C++的三目運算子(?:),但也有類似的替代方案,

那就是
1、 true_part if condition else false_part

>>> 1 if True else 0 1 >>> 1 if False else 0 0 >>> "True" if True else "False" 'True' >>> "True" if True else "False" 'Falser' 

2、 (condition and [true_part] or [false_part] )[0]

>>> (True and ["True"] or ["False"])[0] 'True' >>> (False and ["True"] or ["False"])[0] 'False' >>>  

三、獲得指定字串在整個字串中出現第N次的索引

# -*- coding: cp936 -*- def findStr(string, subStr, findCnt):   listStr = a.split(subStr,findCnt)   if len(listStr) <= findCnt:     return -1   return len(string)-len(listStr[-1])-len(subStr) #test a = "12345(1)254354(1)3534(1)14" sub = "(1)" N = 2   #尋找第2次出現的位置 print findStr(a,sub,N) N = 10   #尋找第10次出現的位置 print findStr(a,sub,N) #結果 #>>>  #14 #-1 

四、enumerate用法:

遍曆序列的時候,可能同時需要用到序列的索引和對應的值,這時候可以採用enumerate方法進行遍曆

enumerate的說明如下:

>>> help(enumerate) Help on class enumerate in module __builtin__:  class enumerate(object)  | enumerate(iterable[, start]) -> iterator for index, value of iterable  |   | Return an enumerate object. iterable must be another object that supports  | iteration. The enumerate object yields pairs containing a count (from  | start, which defaults to zero) and a value yielded by the iterable argument.  | enumerate is useful for obtaining an indexed list:  |   (0, seq[0]), (1, seq[1]), (2, seq[2]), ...  |   | Methods defined here:  |   | __getattribute__(...)  |   x.__getattribute__('name') <==> x.name  |   | __iter__(...)  |   x.__iter__() <==> iter(x)  |   | next(...)  |   x.next() -> the next value, or raise StopIteration  |   | ---------------------------------------------------------------------- | Data and other attributes defined here:  |   | __new__ =   |   T.__new__(S, ...) -> a new object with type S, a subtype of T 

五、遍曆序列的方法

>>> List = ['a','b','c'] >>> for index, value in enumerate(List):   print index, value 0 a 1 b 2 c >>>  

六、使用python random模組的sample函數從列表中隨機播放一組元素

import List = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  slice = random.sample(List, 5)#從List中隨機擷取5個元素,作為一個片斷返回  print slice  print List #原有序列並沒有改變。

七、用json列印包含中文的列表字典等

# -*- coding:utf-8 -*- import json #你的列表 listA = [{'path': ['[AWS] \xe7\xbe\x8e\xe5\xb0\x91\xe5\xa5\xb3\xe6\x88\x98\xe5\xa3\xab Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 1080p x264 AAC][6E5CFE86].mp4'], 'length': 131248608L}, {'path': ['[AWS] \xe7\xbe\x8e\xe5\xb0\x91\xe5\xa5\xb3\xe6\x88\x98\xe5\xa3\xab Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 720p x264 AAC][639D304A].mp4'], 'length': 103166306L}, {'path': ['[AWS] \xe7\xbe\x8e\xe5\xb0\x91\xe5\xa5\xb3\xe6\x88\x98\xe5\xa3\xab Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 480p x264 AAC][5A81BACA].mp4'], 'length': 75198408L}]#列印列表print json.dumps(listA, encoding='UTF-8', ensure_ascii=False) 

輸出結果:

>>>  [{"path": ["[AWS] 美少女戰士 Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 1080p x264 AAC][6E5CFE86].mp4"], "length": 131248608}, {"path": ["[AWS] 美少女戰士 Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 720p x264 AAC][639D304A].mp4"], "length": 103166306}, {"path": ["[AWS] 美少女戰士 Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 480p x264 AAC][5A81BACA].mp4"], "length": 75198408}] 

希望本文所述對大家的Python程式設計有所協助。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.