主頁 > 後端開發 > Python常用68個內置函式

Python常用68個內置函式

2020-10-04 15:45:59 後端開發

內置函式

內置函式就是python給你提供的, 拿來直接用的函式, 比如print., input等. 截止到python版本3.6.2 python一共提供了68個內置函式.

復制代碼
#68個內置函式
# abs()           dict()        help()         min()         setattr()
# all()           dir()         hex()          next()        slice() 
# any()           divmod()      id()           object()      sorted() 
# ascii()         enumerate()   input()        oct()         staticmethod() 
# bin()           eval()        int()          open()        str() 
# bool()          exec()        isinstance()   ord()         sum() 
# bytearray()     ?lter()       issubclass()   pow()         super() 
# bytes()         ?oat()        iter()         print()       tuple() 
# callable()      format()      len()          property()    type() 
# chr()           frozenset()   list()         range()       vars() 
# classmethod()   getattr()     locals()       repr()        zip() 
# compile()       globals()     map()          reversed()    __import__() 
# complex()       hasattr()     max()          round() 
# delattr()       hash()        memoryview()   set()
復制代碼

1. 和數字相關

(1) 資料型別

  1) bool : 布爾型(True,False)

  2) int : 整型(整數)

  3) float : 浮點型(小數)

  4) complex : 復數

(2) 進制轉換

  1) bin()    將給的引數轉換成二進制       

  2) otc()    將給的引數轉換成八進制       

  3) hex()    將給的引數轉換成十六進制

print(bin(10))  # 二進制:0b1010
print(hex(10))  # 十六進制:0xa
print(oct(10))  # 八進制:0o12

(3) 數學運算

     1) abs()            回傳絕對值       

  2) divmode()    回傳商和余數       

  3) round()        四舍五入       

  4) pow(a, b)    求a的b次冪, 如果有三個引數. 則求完次冪后對第三個數取余       

  5) sum()          求和       

  6) min()      求最小值       

  7) max()      求最大值

復制代碼
print(abs(-2))  # 絕對值:2

print(divmod(20,3)) # 求商和余數:(6,2)

print(round(4.50))   # 五舍六入:4
print(round(4.51))   #5

print(pow(10,2,3))  # 如果給了第三個引數. 表示最后取余:1

print(sum([1,2,3,4,5,6,7,8,9,10]))  # 求和:55

print(min(5,3,9,12,7,2))  #求最小值:2

print(max(7,3,15,9,4,13))  #求最大值:15
復制代碼

2. 和資料結構相關

(1) 序列

  1)  串列和元組

   list()        將一個可迭代物件轉換成串列      

  tuple()    將一個可迭代物件轉換成元組

print(list((1,2,3,4,5,6)))  #[1, 2, 3, 4, 5, 6]
print(tuple([1,2,3,4,5,6]))  #(1, 2, 3, 4, 5, 6)

2) 相關內置函式

  reversed()    將一個序列翻轉, 回傳翻轉序列的迭代器       

  slice()    串列的切片

復制代碼
lst = "你好啊"
it = reversed(lst)   # 不會改變原串列. 回傳一個迭代器, 設計上的一個規則
print(list(it))  #['啊', '好', '你']

lst = [1, 2, 3, 4, 5, 6, 7]
print(lst[1:3:1])  #[2,3]

s = slice(1, 3, 1)  #  切片用的
print(lst[s])  #[2,3]
復制代碼

3) 字串

  str()  將資料轉化成字串      

print(str(123)+'456')  #123456

  format()     與具體資料相關, 用于計算各種小數, 精算等.

復制代碼
s = "hello world!"
print(format(s, "^20"))  #劇中
print(format(s, "<20"))  #左對齊
print(format(s, ">20"))  #右對齊
#     hello world!    
# hello world!        
#         hello world!

print(format(3, 'b' ))    # 二進制:11
print(format(97, 'c' ))   # 轉換成unicode字符:a
print(format(11, 'd' ))   # ?進制:11
print(format(11, 'o' ))   # 八進制:13 
print(format(11, 'x' ))   # 十六進制(?寫字母):b
print(format(11, 'X' ))   # 十六進制(大寫字母):B
print(format(11, 'n' ))   # 和d?樣:11
print(format(11))         # 和d?樣:11

print(format(123456789, 'e' ))      # 科學計數法. 默認保留6位小數:1.234568e+08
print(format(123456789, '0.2e' ))   # 科學計數法. 保留2位小數(小寫):1.23e+08
print(format(123456789, '0.2E' ))   # 科學計數法. 保留2位小數(大寫):1.23E+08
print(format(1.23456789, 'f' ))     # 小數點計數法. 保留6位小數:1.234568
print(format(1.23456789, '0.2f' ))  # 小數點計數法. 保留2位小數:1.23
print(format(1.23456789, '0.10f'))  # 小數點計數法. 保留10位小數:1.2345678900
print(format(1.23456789e+3, 'F'))   # 小數點計數法. 很大的時候輸出INF:1234.567890
復制代碼

   bytes()    把字串轉化成bytes型別

bs = bytes("今天吃飯了嗎", encoding="utf-8")
print(bs)  #b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x90\x83\xe9\xa5\xad\xe4\xba\x86\xe5\x90\x97'

   bytearray()    回傳一個新位元組陣列. 這個數字的元素是可變的, 并且每個元素的值得范圍是[0,256)

ret = bytearray("alex" ,encoding ='utf-8')
print(ret[0])  #97
print(ret)  #bytearray(b'alex')
ret[0] = 65  #把65的位置A賦值給ret[0]
print(str(ret))  #bytearray(b'Alex')

   ord()    輸入字符找帶字符編碼的位置       

  chr()    輸入位置數字找出對應的字符       

  ascii()  是ascii碼中的回傳該值 不是就回傳\u...

復制代碼
print(ord('a'))  # 字母a在編碼表中的碼位:97
print(ord('中'))  # '中'字在編碼表中的位置:20013

print(chr(65))  # 已知碼位,求字符是什么:A
print(chr(19999))  #丟

for i in range(65536):  #列印出0到65535的字符
    print(chr(i), end=" ")

print(ascii("@"))  #'@'
復制代碼

  repr()    回傳一個物件的string形式

s = "今天\n吃了%s頓\t飯" % 3
print(s)
#今天
# 吃了3頓    飯
print(repr(s))   # 原樣輸出,過濾掉轉義字符 \n \t \r 不管百分號%
#'今天\n吃了3頓\t飯'

(2) 資料集合

  1)  字典

  dict 創建一個字典

  2)  集合

  set 創建一個集合

      frozenset()    創建一個凍結的集合. 凍結的集合不能進行添加和洗掉操作

(3) 相關內置函式

  len()    回傳一個物件中的元素的個數       

  sorted()    對可迭代物件進行排序操作 (lamda)    

  語法:

  sorted(Iterable, key=函式(排序規則), reverse=False)       

       Iterable: 可迭代物件       

       key: 排序規則(排序函式), 在sorted內部會將可迭代物件中的每一個元素傳遞給這個函式的引數. 根據函式運算的結果進行排序

       reverse: 是否是倒敘. True: 倒敘, False: 正序

復制代碼
lst = [5,7,6,12,1,13,9,18,5]
lst.sort()  # sort是list里面的一個方法
print(lst)  #[1, 5, 5, 6, 7, 9, 12, 13, 18]

ll = sorted(lst) # 內置函式. 回傳給你一個新串列  新串列是被排序的
print(ll)  #[1, 5, 5, 6, 7, 9, 12, 13, 18]

l2 = sorted(lst,reverse=True)  #倒序
print(l2)  #[18, 13, 12, 9, 7, 6, 5, 5, 1]
復制代碼
#根據字串長度給串列排序
lst = ['one', 'two', 'three', 'four', 'five', 'six']
def f(s):
    return len(s)
l1 = sorted(lst, key=f, )
print(l1)  #['one', 'two', 'six', 'four', 'five', 'three']

  enumerate()    獲取集合的列舉物件

復制代碼
lst = ['one','two','three','four','five']
for index, el in enumerate(lst,1):    # 把索引和元素一起獲取,索引默認從0開始. 可以更改
    print(index)
    print(el)
# 1
# one
# 2
# two
# 3
# three
# 4
# four
# 5
# five
復制代碼

  all()      可迭代物件中全部是True, 結果才是True       

  any()    可迭代物件中有一個是True, 結果就是True

print(all([1,'hello',True,9]))  #True
print(any([0,0,0,False,1,'good']))  #True

  zip()    函式用于將可迭代的物件作為引數, 將物件中對應的元素打包成一個元組, 然后回傳由這些元組組成的串列. 如果各個迭代器的元素個數不一致, 則回傳串列長度與最短的物件相同

復制代碼
lst1 = [1, 2, 3, 4, 5, 6]
lst2 = ['醉鄉民謠', '驢得水', '放牛班的春天', '美麗人生', '辯護人', '被嫌棄的松子的一生']
lst3 = ['美國', '中國', '法國', '意大利', '韓國', '日本']
print(zip(lst1, lst1, lst3))  #<zip object at 0x00000256CA6C7A88>
for el in zip(lst1, lst2, lst3):
    print(el)
# (1, '醉鄉民謠', '美國')
# (2, '驢得水', '中國')
# (3, '放牛班的春天', '法國')
# (4, '美麗人生', '意大利')
# (5, '辯護人', '韓國')
# (6, '被嫌棄的松子的一生', '日本')
復制代碼

  fiter()     過濾 (lamda)   

  語法:

  fiter(function. Iterable)       

  function: 用來篩選的函式. 在?lter中會自動的把iterable中的元素傳遞給function. 然后根據function回傳的True或者False來判斷是否保留留此項資料  , Iterable: 可迭代物件

def func(i):    # 判斷奇數
    return i % 2 == 1
lst = [1,2,3,4,5,6,7,8,9]
l1 = filter(func, lst)  #l1是迭代器
print(l1)  #<filter object at 0x000001CE3CA98AC8>
print(list(l1))  #[1, 3, 5, 7, 9]

  map()      會根據提供的函式對指定序列列做映射(lamda)

    語法 : map(function, iterable) 可以對可迭代物件中的每一個元素進行映射. 分別去執行 function

def f(i):
    return i
lst = [1,2,3,4,5,6,7,]
it = map(f, lst) # 把可迭代物件中的每一個元素傳遞給前面的函式進行處理. 處理的結果會回傳成迭代器
print(list(it))  #[1, 2, 3, 4, 5, 6, 7]

3. 和作用域相關

  locals()      回傳當前作用域中的名字

      globals()    回傳全域作用域中的名字

復制代碼
def func():
    a = 10
    print(locals())  # 當前作用域中的內容
    print(globals())  # 全域作用域中的內容
    print("今天內容很多")
func()
# {'a': 10}
# {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': 
# <_frozen_importlib_external.SourceFileLoader object at 0x0000026F8D566080>, 
# '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' 
# (built-in)>, '__file__': 'D:/pycharm/練習/week03/new14.py', '__cached__': None,
#  'func': <function func at 0x0000026F8D6B97B8>}
# 今天內容很多
復制代碼

4. 和迭代器/生成器相關

  range()       生成資料   

  next()         迭代器向下執行一次, 內部實際使?用了__next__()?方法回傳迭代器的下一個專案   

  iter()           獲取迭代器, 內部實際使用的是__iter__()?方法來獲取迭代器

復制代碼
for i in range(15,-1,-5):
    print(i)
# 15
# 10
# 5
# 0

lst = [1,2,3,4,5]
it = iter(lst)  #  __iter__()獲得迭代器
print(it.__next__())  #1
print(next(it)) #2  __next__()  
print(next(it))  #3
print(next(it))  #4
復制代碼

5. 字串型別代碼的執行   

  eval()        執行字串型別的代碼. 并回傳最終結果

  exec()       執行字串型別的代碼

  compile()   將字串型別的代碼編碼. 代碼物件能夠通過exec陳述句來執行或者eval()進行求值

復制代碼
s1 = input("請輸入a+b:")  #輸入:8+9
print(eval(s1))  # 17 可以動態的執行代碼. 代碼必須有回傳值

s2 = "for i in range(5): print(i)"
a = exec(s2) # exec 執行代碼不回傳任何內容
# 0
# 1
# 2
# 3
# 4
print(a)  #None

# 動態執行代碼
exec("""
def func():
    print(" 我是周杰倫")
""" )
func()  #我是周杰倫
復制代碼 復制代碼
code1 = "for i in range(3): print(i)"
com = compile(code1, "", mode="exec")   # compile并不會執行你的代碼.只是編譯
exec(com)   # 執行編譯的結果
# 0
# 1
# 2

code2 = "5+6+7"
com2 = compile(code2, "", mode="eval")
print(eval(com2))  # 18

code3 = "name = input('請輸入你的名字:')"  #輸入:hello
com3 = compile(code3, "", mode="single")
exec(com3)
print(name)  #hello
復制代碼

6. 輸入輸出

  print() : 列印輸出

  input() : 獲取用戶輸出的內容

print("hello", "world", sep="*", end="@") # sep:列印出的內容用什么連接,end:以什么為結尾
#hello*world@

7. 記憶體相關

  hash() : 獲取到物件的哈希值(int, str, bool, tuple).   hash演算法:(1) 目的是唯一性 (2) dict 查找效率非常高, hash表.用空間換的時間 比較耗費記憶體

s = 'alex'
print(hash(s))  #-168324845050430382

lst = [1, 2, 3, 4, 5]
print(hash(lst))  #報錯,串列是不可哈希的

  id() :  獲取到物件的記憶體地址

s = 'alex'
print(id(s))  #2278345368944

8.檔案操作相關

  open() : 用于打開一個檔案, 創建一個檔案句柄

f = open('file',mode='r',encoding='utf-8')
f.read()
f.close()

9. 模塊相關

  __import__() :  用于動態加載類和函式

# 讓用戶輸入一個要匯入的模塊
import os
name = input("請輸入你要匯入的模塊:")
__import__(name)    # 可以動態匯入模塊

10. 幫助

  help() : 函式用于查看函式或模塊用途的詳細說明

print(help(str))  #查看字串的用途

11. 呼叫相關

  callable() : 用于檢查一個物件是否是可呼叫的. 如果回傳True, object有可能呼叫失敗, 但如果回傳False. 那呼叫絕對不會成功

a = 10
print(callable(a))  #False  變數a不能被呼叫
#
def f():
    print("hello")
print(callable(f))   # True 函式是可以被呼叫的

12. 查看內置屬性

  dir() : 查看物件的內置屬性, 訪問的是物件中的__dir__()方法

print(dir(tuple))  #查看元組的方法

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/154822.html

標籤:Python

上一篇:python魔法方法中的str和repr使用和區別

下一篇:Python生成器總結非常詳細【新手必學】

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more