python基礎(15):內置函數(一)

来源:https://www.cnblogs.com/liuhui0308/archive/2019/11/07/11815836.html
-Advertisement-
Play Games

1. 內置函數 什麼是內置函數? 就是python給你提供的,拿來直接⽤的函數,比如print,input等等,截⽌到python版本3.6.2 python⼀共提供了68個內置函數。他們就是python直接提供給我們的,有 ⼀些我們已經⽤過了,有⼀些還沒有⽤過,還有⼀些需要學完了⾯向對象才能繼續學 ...


1. 內置函數

什麼是內置函數? 就是python給你提供的,拿來直接⽤的函數,比如print,input等等,截⽌到python版本3.6.2 python⼀共提供了68個內置函數。他們就是python直接提供給我們的,有 ⼀些我們已經⽤過了,有⼀些還沒有⽤過,還有⼀些需要學完了⾯向對象才能繼續學習的,今天我們就認識⼀下python的內置函數。 作⽤域相關:
locals():返回當前作⽤域中的名字 globals():返回全局作⽤域中的名字
迭代器相關:
range():⽣成數據 next():迭代器向下執⾏⼀次, 內部實際使⽤了__next__()⽅法返回迭代器的下⼀個項⽬ iter():獲取迭代器, 內部實際使⽤的是__iter__()⽅法來獲取迭代器
字元串類型代碼的執⾏:
eval():執⾏字元串類型的代碼. 並返回最終結果
print(eval("2+2")) # 4
n = 8
print(eval("2+n")) # 10
def func():
  print(666)
eval("func()") # 666
exec():執⾏字元串類型的代碼
exec("""
for i in range(10):
   print(i)
""")
exec("""
def func():
   print("我是周傑倫")
func()
""")
compile():將字元串類型的代碼變異,代碼對象能夠通過exec語句來執⾏或者eval()進⾏求值
'''
參數說明:
 1. resource 要執⾏的代碼, 動態代碼⽚段
 2. ⽂件名, 代碼存放的⽂件名, 當傳⼊了第⼀個參數的時候, 這個參數給空就可以了
 3. 模式, 取值有3個,
 1. exec: ⼀般放⼀些流程語句的時候
 2. eval: resource只存放⼀個求值表達式.
 3. single: resource存放的代碼有交互的時候. mode應為single
'''
code1 = "for i in range(10): print(i)"
c1 = compile(code1, "", mode="exec")
exec(c1)

code2
= "1+2+3" c2 = compile(code2, "", mode="eval") a = eval(c2) print(a)
code3
= "name = input('請輸⼊你的名字:')" c3 = compile(code3, "", mode="single") exec(c3) print(name)
有返回值的字元串形式的代碼⽤eval(),沒有返回值的字元串形式的代碼⽤exec(),⼀般很少⽤到compile()。 輸入和輸出相關:
input():獲取⽤戶輸入的內容 print():列印輸出
記憶體相關: 
hash():獲取到對象的哈希值(int, str, bool, tuple) id():獲取到對象的記憶體地址
⽂件操作相關: 
open():⽤於⼝打開⼀個⽂件,創建⼀個⽂件句柄
模塊相關:
__import__():⽤於動態載入類和函數
幫助: 
help():函數⽤於查看函數或模塊⽤途的詳細說明
調⽤相關: 
callable():⽤於檢查⼀個對象是否是可調⽤的,如果返回True,object有可能調⽤失敗,但如果返回False,那調⽤絕對不會成功
查看內置屬性: 
dir():查看對象的內置屬性,⽅法,訪問的是對象中的__dir__()⽅法
基礎數據類型相關:     數字相關: 
bool():將給定的數據轉換成bool值,如果不給值,返回False int():將給定的數據轉換成int值,如果不給值, 返回0 flfloat():將給定的數據轉換成flfloat值,也就是⼩數 complex():創建⼀個複數,第⼀個參數為實部,第⼆個參數為虛部,或者第⼀個參數直接⽤字元串來描述複數
  進位轉換: 
bin():將給的參數轉換成⼆進位 otc():將給的參數轉換成八進位 hex():將給的參數轉換成⼗六進位
  數學運算: 
abs():返回絕對值 divmode():返回商和餘數 round():四捨五入 pow(a, b):求a的b次冪,如果有三個參數,則求完次冪後對第三個數取餘 sum():求和 min():求最⼩值 max():求最⼤值
和數據結構相關:    列表和元組: 
list():將⼀個可迭代對象轉換成列表 tuple():將⼀個可迭代對象轉換成元組 reversed():將⼀個序列翻轉, 返回翻轉序列的迭代器 slice():列表的切片
st = "⼤家好, 我是麻花藤"
s = slice(1, 5, 2)
print(st[s])
  字元串相關: 
str():將數據轉化成字元串
format():與具體數據相關, ⽤於計算各種⼩數, 精算等
# 字元串
print(format('test', '<20')) # 左對⻬
print(format('test', '>20')) # 右對⻬
print(format('test', '^20')) # 居中
# 數值
print(format(3, 'b')) # ⼆進位
print(format(97, 'c')) # 轉換成unicode字元
print(format(11, 'd')) # ⼗進位
print(format(11, 'o')) # ⼋進位
print(format(11, 'x')) # ⼗六進位(⼩寫字⺟)
print(format(11, 'X')) # ⼗六進位(⼤寫字⺟)
print(format(11, 'n')) # 和d⼀樣
print(format(11)) # 和d⼀樣
# 浮點數
print(format(123456789, 'e')) # 科學計數法. 預設保留6位⼩數
print(format(123456789, '0.2e')) # 科學計數法. 保留2位⼩數(⼩寫)
print(format(123456789, '0.2E')) # 科學計數法. 保留2位⼩數(⼤寫)
print(format(1.23456789, 'f')) # ⼩數點計數法. 保留6位⼩數
print(format(1.23456789, '0.2f')) # ⼩數點計數法. 保留2位⼩數
print(format(1.23456789, '0.10f')) # ⼩數點計數法. 保留10位⼩數
print(format(1.23456789e+10000, 'F')) # ⼩數點計數法.
bytes():把字元串轉化成bytes類型
s = "你好"
bs = s.encode("UTF-8")
print(bs)
s1 = bs.decode("UTF-8")
print(s1)
bs = bytes(s, encoding="utf-8") # 把字元串編碼成UTF-8
print(bs)
bytearray():返回⼀個新位元組數組。這個數字⾥的元素是可變的,並且每個元素的值得範圍是[0,256)
ret = bytearray('alex',encoding='utf-8')
print(ret[0])
print(ret)
memoryview():查看bytes在記憶體中的情況
# 查看bytes位元組在記憶體中的情況
s = memoryview("麻花藤".encode("utf-8"))
print(s)
ord():輸入字元找帶字元編碼的位置 chr():輸入位置數字找出對應的字元 ascii():是ascii碼中的返回該值 不是就返回\u...
# 找到對應字元的編碼位置
print(ord('a'))
print(ord(''))
# 找到對應編碼位置的字元
print(chr(97))
print(chr(20013))
# 在ascii中就返回這個值. 如果不在就返回\u...
print(ascii('a'))
print(ascii(''))
repr():返回⼀個對象的string形式
# repr 就是原封不動的輸出, 引號和轉義字元都不起作⽤
print(repr('⼤家好,\n \t我叫周傑倫'))
print('⼤家好我叫周傑倫')

# %r 原封不動的寫出來 name = 'taibai' print('我叫%r' % name)
  數據集合:
dict():創建⼀個字典 set():創建⼀個集合 frozenset():創建⼀個凍結的集合,凍結的集合不能進⾏添加和刪除操作
  其他相關: 
len():返回⼀個對象中的元素的個數 sorted():對可迭代對象進⾏排序操作(講完lamda後再講這個) enumerate():獲取集合的枚舉對象
lst = ["alex", "wusir", "taibai"]
for index, el in enumerate(lst):
  print(str(index)+"==>"+el)
all():可迭代對象中全部是True,結果才是True any():可迭代對象中有⼀個是True,結果就是True
print(all([1,2,True,0]))
print(any([1,'',0]))
zip():函數⽤於將可迭代的對象作為參數,將對象中對應的元素打包成⼀個個元組,然後返回由這些元組組成的開了表,如果各個迭代器的元素個數不⼀致,則返回列表⻓度與最短的對象相同
l1 = [1,2,3,]
l2 = ['a','b','c',5]
l3 = ('*','**',(1,2,3))
for i in zip(l1,l2,l3):
  print(i)
fifilter():過濾(講完lamda) map():會根據提供的函數對指定序列做映射(lamda)

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

-Advertisement-
Play Games
更多相關文章
  • 寫在前面的話 適用讀者:有一定經驗的,本文不適合初學者,因為可能不能理解我在說什麼 文章思路:不會一開始就像別的博客文章那樣,Bean 的生命周期,源碼解讀(給你貼一大堆的源碼)。個人覺得應該由問題驅動,為什麼為出現 BeanFactory ,為什麼會有生命周期。 正文 一開始我們使用 bean 都 ...
  • 1、Eureka服務端集群開發 1、先創建一個父工程 若是不是普通demo,還有別的配置時,需要註意若是服務開不起來可能就是父類依賴中可能會需要<dependencyManagement>這個標簽。 2、再創建兩個子工程 1、導入依賴 <dependency> <groupId>org.spring ...
  • 1 簡介 我們知道 只是一個介面,它有多種實現,Java中最常用的是 了。而本文想講述的是另一個實現: 。它是枚舉類型的 ,要求它的Key值都必須是枚舉型的。 2 創建你的EnumMap 既然是關於枚舉類型的Map,我們先創建一個枚舉,以便後續使用: 2.1 創建EnumMap的三種方法 JDK提供 ...
  • 1. lamda匿名函數 為瞭解決⼀些簡單的需求⽽設計的⼀句話函數 # 計算n的n次⽅ def func(n): return n**n print(func(10)) f = lambda n: n**n print(f(10)) lambda表⽰的是匿名函數,不需要⽤def來聲明,⼀句話就可以聲 ...
  • 調優基本概念 在調整JVM性能時,通常有三個組件需要考慮: 堆大小調整 垃圾收集器調整 JIT編譯器 大多數調優選項都與調整堆大小和選擇合適的垃圾收集器有關,JIT編譯器對性能也有很大影響,但很少需要對其進行調優,尤其是針對較新版本的JVM。 通常,在進行Java程式調優的時候,會重點關註兩個主要指 ...
  • 這篇文章主要分享 Timer 毫秒精度的定時器。本地版本:PHP 7.2.6、Swoole 4.3.1。Timer主要有三個方法:swoole_timer_tick 間隔的時鐘控制器swoole_timer_after 指定的時間後執行swoole_timer_clear 刪除定時器示例代碼:運行結 ...
  • 包裝 1.二次加工標準類型(包裝) class List(list): def append(self, a_objcet): if type(a_objcet) is str: super().append(a_objcet) else: print('請傳入字元轉類型') l1 = List(' ...
  • 我們都知道 HTTP 是一種協議,允許 WEB 伺服器和瀏覽器通過互聯網進行發送和接受數據。想對 HTTP 進行詳細的瞭解,可以找下其他文章,這篇文章不多做介紹。我們在網上能看到的界面,圖片,動畫,音頻,視頻 等,都有依賴這個協議的。在做 WEB 系統的時候,都使用過 IIS、Apache、Ngin ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...