python-day4-內置函數2

来源:http://www.cnblogs.com/liguangxu/archive/2016/05/29/5540859.html
-Advertisement-
Play Games

摘要:python中有好多可用性特別強的內置函數,熟練掌握對於以後的編程過程中有很大的幫助~~~~ callable函數、chr函數與ord函數、random函數、compile函數、evec與eval函數、dir函數,divmod函數、isinstance函數、filter與map函數 ...


摘要:python中有好多可用性特別強的內置函數,熟練掌握對於以後的編程過程中有很大的幫助~~~~

callable函數、chr函數與ord函數、random函數、compile函數、evec與eval函數、dir函數,divmod函數、isinstance函數、filter與map函數

 1 #上節課回顧
 2 li = [11, 22, 33, 44]
 3 def f1(arg):
 4     arg.append(55)
 5 li=f1(li)
 6 print(li)
 7 >>>None  註意:因為函數無return所以返回值為None,li=f1(li)是把None值賦給li
 8 
 9 li = [11, 22, 33, 44]
10 def f1(arg):
11     arg.append(55)
12 f1(li)
13 print(li)
14 >>>[11, 22, 33, 44, 55]
1 #callable函數,判斷是否可調用
2 def f1():
3     pass
4 f1()
5 f2=123
6 print(callable(f1))
7 #>>>True
8 print(callable(f2))
9 #>>>False
1 #chr函數與ord函數
2 r=chr(65)
3 print(r)
4 >>>A #將65轉化為對應的ASCII碼
5 n=ord('a')
6 print(n)
7 >>>97 #將字幕a轉化為對應的ASCII碼數字
#隨機驗證碼,純6位字母
import random
li=[]
for i in range(6):
    temp=random.randrange(65,91)#隨機獲取65 到 91之間的數
    c=chr(temp)#將隨機數轉化為字母
    li.append(c)#追加放入列表中
result="".join(li)
print(result)

#隨機驗證碼,字母與數字結合
import random
li=[]
for i in range(6):
    if random.randrange(0,5) % 2:
        num = random.randrange(0,10)
        li.append(str(num))
    else:
        temp=random.randrange(65,91)#隨機獲取65 到 91之間的數
        c=chr(temp)#將隨機數轉化為字母
        li.append(c)#追加放入列表中
result="".join(li)
print(result)
#compile函數,將字元串編譯為python代碼
exec接受:代碼或者字元串
exec("print('abc')")
>>>abc

#執行表達式,並且獲取結果
ret=eval("7+9+8")
print(ret)
>>>24
 1 #快速查看,對象提供了那些功能
 2 print(dir(list))
 3 >>>['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',
 4     '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
 5     '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__',
 6     '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__',
 7     '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
 8     '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__',
 9     '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert',
10     'pop', 'remove', 'reverse', 'sort']
#divmod函數,共97條數據,每頁顯示10條,需要多少頁
r=divmod(97,10)
print(r)
>>>(9, 7) #9頁餘7條數據,可加判斷r[1]>0 則共需要r[0]+1頁
1 #isinstance函數,判斷是否為類的對象
2 s=[11,22,33]
3 r=isinstance(s,list)
4 print(r)
5 >>>True#列表s為列表的對象,字元串類型的值為str類的對象,字典類型的值為dict的對象
 1 #filter函數 迴圈第二個參數,讓每個元素執行函數,如果函數返回True,表示元素合法,用於篩選
 2 由下麵程式引出
 3 def f1(args):
 4     result=[]
 5     for item in args:
 6         if item>22:#判斷列表中大與22的值
 7             result.append(item)#追加到result列表中
 8     return result
 9 li=[11,22,33,44,55]
10 ret=f1(li)#ret接收result的值
11 print(ret)
12 >>>[33, 44, 55]
13 #filter函數只返回True或False需要藉助lambda自動return接收返回值
14 f1=lambda a:a+30
15 ret=f1(30)
16 print(ret)
17 >>>60
18 
19 #等同於
20 li=[11,22,33,44,55]
21 #迴圈第二個可迭代元素,判斷是否大於30返回True,lambda自動接收返回值並放入result中用於篩選
22 result= filter(lambda a:a > 30,li)
23 # 小於返回Flaselambda不接收返回值
24 print(list(result))
25 
26 #map函數,迴圈第二個可迭代元素,並返回值
27 li=[11,22,33,44,55]
28 result=map(lambda a:a+200,li)
29 print(list(result))
30 >>>[211, 222, 233, 244, 255]
31 
32 #兩函數比較
33 li = [11, 22, 33, 44]
34 r = map(lambda a: a+100, list(map(lambda a: a>30,li)))
35 print(list(r))
36 # >>>[100, 100, 101, 101] #第二個元素結果返回0或1
37 
38 li = [11, 22, 33, 44]
39 r = filter(lambda a: a+100, list(filter(lambda a: a>30,li)))
40 print(list(r))
41 #>>>[33, 44] #filter無法進行表達式運算,只能將True結果通過lambda返回
42 
43 li = [11, 22, 33, 44]
44 r = map(lambda a: a+100, list(filter(lambda a: a>30,li)))
45 print(list(r))
46 #[133, 144] 結合運用,判斷大於30的則進行表達式運算
1 #len函數,註2.0版本中len字元自動轉為utf-8的位元組長度,3.0版本則不轉換,一個字元為一個長度
2 s='李光旭'
3 print(len(s))
4 #>>>3
5 b=bytes(s,encoding='utf-8')
6 print(len(b))
7 #>>>9

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 開發PHP的朋友都知道,其實最擔心的就是程式中出現一些異常或錯誤,這些狀況如果輸出到用戶的螢幕會把用戶給嚇壞,甚至為此丟了工作,如果不輸出到螢幕就得想辦法記錄到日誌中,但是似乎不是每個人都有查看錯誤日誌的習慣,爲瞭解決這個尷尬的問題,所以我寫了這段代碼,其用意就是當我們寫的php程式出錯的時候把錯誤 ...
  • 首先,移位運算符有三種,其操作類型只支持:byte / short / char / int和long五種。 << 左移運算符,表示將左邊的操作數的二進位數據向左移動*位,移動後空缺位以0填充,多餘位捨棄。(等同於乘2的n次方) >> 右移運算符,二進位數據向右移動*位,就在其二進位數據後抹掉幾位? ...
  • ...
  • 上篇文章介紹了PHP添加元素到數組的函數,那麼當然有從數組中刪除元素。array_pop和array_shift只從數組的頭或尾刪除一個元素。經過閱讀源碼,發現這兩個函數的實現都是調用了同一個函數--_phpi_pop來實現從數組中刪除一個數組元素的功能。因此解讀時將這兩個函數一併講了。 ...
  • 引言 Martin Fowler的《重構:改善既有代碼的設計》一書從2003年問世至今已有十幾年時間了,按照電腦領域日新月異的變化速度,重構已經算是一門陳舊的技術了。但是陳舊並不代表不重要,恰恰隨著演進式設計被越來越廣泛的使用,重構技術已經被認為是現代軟體開發中的一項必備的基本技能!所以今天在任何 ...
  • 應用部署weblogic 報錯Unsupported major.minor version 51.0的解決過程 1、部署提示錯誤:Unsupported major.minor version 51.0 1.1 錯誤現象如下圖所示: 1.2 原因分析 類似錯誤均屬於Java版本問題,即JDK版本過... ...
  • 前面我們完成了微信公眾號的`伺服器配置`,並且完成了token的驗證.現在我們嘗試回覆用戶發送給公眾號的文本消息.1.首先我們確定`微信配置`為`啟用`狀態. 2.然後我們進入微信公眾平臺的`沙盒測試賬號`,因為在這種狀態下對已各種藉口的許可權限制比較小,而且這是一個獨立的公眾號,有獨立的`appID ...
  • 什麼是集合?正如其字面的意思,一堆東西集中合併到一起。乍一聽貌似和容器沒什麼差別,嗯,好吧,集合也算是一種容器。 在學習這個容器有什麼不同之前,先看看集合是如何創建的: 集合分為兩種,一種是不可變的,一種是可變的,兩者的差異後面會分析。 不過,我們創建了兩個空的集合貌似麽什麼意思。 為了使其有意義, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...