此篇文章獻給還處於Python零基礎的小白們!保證你能入門不是問題

来源:https://www.cnblogs.com/Python1234/archive/2018/05/20/9064427.html
-Advertisement-
Play Games

更多案例請關註我的博客:home.cnblogs.com/u/Python1234 歡迎大家加入千人交流資源共用群:125240963 表示什麼都沒有 如果函數沒有返回值,可以返回 None 用來占位 表示什麼都沒有 如果函數沒有返回值,可以返回 None 用來占位 三、內置數據結構 list se ...


更多案例請關註我的博客:home.cnblogs.com/u/Python1234

歡迎大家加入千人交流資源共用群:125240963

  • 表示什麼都沒有

  • 如果函數沒有返回值,可以返回 None

  • 用來占位

三、內置數據結構

  • list

  • set

  • dict

  • tuple

list(列表)

# 1, 創建空列表 l1 =

[]

# 2. 創建帶值的列表 l2 = [ 100

]

# 3. 創建列表,帶多個值 l3 = [ 2 , 3 , 1 , 4 , 6 , 4 , 6

]

# 4. 使用list() l4 = list()

  • # 用list a創建一個list b # 下麵代碼的含義是,對於所有a中的元素,逐個放入新列表b中 b = [i * 10 for i in

    a]

    # 還可以過濾原來list中的內容病放入新列表 # 比如原有列表a, 需要把所有a中的偶數生成新的列表b a = [x for x in range( 1 , 35 )] # 生成從1到34的一個列表 # 把a中所有偶數生成一個新的列表 b b = [m for m in a if m % 2 ==

    0]

    # 列表生成式可以嵌套 # 由兩個列表a,b a = [i for i in range( 1 , 4 )] # 生成list a b = [i for i in range( 100 , 400 ) if i % 100 ==

    0]

    # 列表生成是可以嵌套,此時等於兩個for迴圈嵌套 c = [ m + n for m in a for n in

    b]

    # 上面代碼跟下麵代碼等價 for m in

    a:

    for n in

    b:

    print (m + n, end = " "

    )

    # 嵌套的列表生城市也可以用條件表達式 c = [ m + n for m in a for n in b if m + n < 250 ]

  • 關於列表的常用函數

    • copy: 拷貝,此函數是淺拷貝

      b = a.copy()

    • count:查找列表中指定值或元素的個數

      a_len = a.count( 8 )

    • extend:擴展列表,兩個列表,把一個直接拼接到後一個上

      a = [ 1 , 2 , 3 , 4 , 5

      ]

      b

      = [ 6 , 7 , 8 , 9 , 10

      ]

      a.extend(b)

    • remove:在列表中刪除指定的值的元素(如果被刪除的值沒在list中,則報錯)

    • clear:清空

    • reverse:翻轉列表內容,原地翻轉

      a = [ 1 , 2 , 3 , 4 , 5

      ]

      a.reverse()

    • del 刪除

    • pop,從對位拿出一個元素,即把最後一個元素取出來

      last_ele = a.pop()

    • insert: 制定位置插入

      # insert(index, data), 插入位置是index前面 a.insert( 3 , 666 )

    • append 插入一個內容, 在末尾追加

      a = [ i for i in range( 1 , 5

      )]

      a.append(

      100 )

    • min

    • list:將其他格式的數據轉換成list

      # 把range產生的內容轉換成list print (list(range( 12 , 19 )))

    • max:求列表中的最大值

      b = [ ' man ' , ' film ' , ' python '

      ]

      print (max(b))

    • len:求列表長度

      a = [x for x in range( 1 , 100

      )]

      print (len(a))

tuple(元組)

# 創建空元組 t =

()

# 創建一個只有一個值的元組 t = ( 1

,)

t

= 1

,

# 創建多個值的元組 t = ( 1 , 2 , 3 , 4 , 5

)

t

= 1 , 2 , 3 , 4 , 5 # 使用其他結構創建 l = [ 1 , 2 , 3 , 4 , 5

]

t

= tuple(l)

元組的特性

  • 是序列表,有序

  • 元組數據值可以訪問,不能修改

  • 元組數據可以是任意類型

  • list所有特性,除了可修改外,元組都具有

元組的函數

  • len: 獲取元組的長度

  • max, min:最大最小值

  • count: 計算制定數據出現的次數

  • index:求制定元素在元組中的索引位置

set(集合)

# 集合的定義 s =

set()

# 此時,大括弧內一定要有值,否則定義出的是一個dict s = { 1 , 2 , 3 , 4 , 5 , 6 , 7

}

# 如果只是用大括弧定義,則定義的是一個dict類型 d = {}

集合的特征

  • 集合內數據無序,即無法使用索引和分片

  • 集合內部數據元素具有唯一性,可以用來排除重覆數據

  • 集合內的數據,str, int, float, tuple,冰凍集合等,即內部只能放置可哈希數據

集合序列操作

  • 成員檢測(in,not in)

  • 遍歷

# for 迴圈 s = { 4 , 5 , " i "

}

for i in

s:

print (i, end = " "

)

# 帶有元組的集合遍歷 s = {( 1 , 2 , 3 ), ( " just " , " for " , " fun " ), ( 4 , 5 , 6

)}

for k,m,n in

s:

print (k, " -- " , m, " -- "

, n)

for k in

s:

print (k)

集合的內涵

# 普通集合內涵 # 以下集合在初始化後自動過濾掉重覆元素 s = { 23 , 223 , 545 , 3 , 1 ,2 , 3 , 4 , 3 , 2 , 3 , 1 , 2 , 4 , 3

}

# 普通集合內涵 ss = {i for i in

s}

# 帶條件的集合內涵 sss = {i for i in s if i % 2 ==

0}

# 多迴圈的集合內涵 s1 = { 1 , 2 , 3 , 4

}

s2

= { " just " , " for " , " fun "

}

s

= {m * n for m in s2 for n in

s1}

s

= {m * n for m in s2 for n in s1 if n == 2 }

集合函數

  • len, max, min

  • set:生成一個集合

  • add:向集合內添加元素

  • clear

  • copy

  • remove:移除制定的值,直接改變原有值,如果要刪除的值不存在,報錯

  • discard:移除集合中指定的值,跟 remove 一樣,但是入股要刪除的話,不報錯

  • pop 隨機移除一個元素

  • 函數

  • intersection: 交集

  • difference:差集

  • union: 並集

  • issubset: 檢查一個集合是否為另一個子集

  • issuperset: 檢查一個集合是否為另一個超集

  • # 創建 s = frozenset()

dict(字典)

  • 沒有順序的組合數據,數據以鍵值對形式出現

    # 字典的創建 # 創建空字典1 d =

    {}

    # 創建空字典2 d =

    dict()

    # 創建有值的字典, 每一組數據用冒號隔開, 每一對鍵值對用逗號隔開 d = { " one " : 1 , " two " : 2 , " three " : 3

    }

    # 用dict創建有內容字典1 d = dict({ " one " : 1 , " two " : 2 , " three " : 3

    })

    # 用dict創建有內容字典2 # 利用關鍵字參數 d = dict(one = 1 , two = 2 , three = 3

    )

    # d = dict( [( " one " , 1 ), ( " two " , 2 ), ( " three " , 3 )])

字典的特征

  • 字典是序列類型,但是是無序序列,所以沒有分片和索引

  • 字典中的數據每個都有鍵值對組成,即kv對

    • key: 必須是可哈希的值,比如int,string,float,tuple, 但是,list,set,dict 不行

    • value: 任何值

字典常見操作

# 訪問數據 d = { " one " : 1 , " two " : 2 , " three " : 3

}

# 註意訪問格式 # 中括弧內是鍵值 print (d[ " one "

])

d[

" one " ] = " eins " # 刪除某個操作 # 使用del操作 del d[ " one "

]

# 成員檢測, in, not in # 成員檢測檢測的是key內容 d = { " one " : 1 , " two " : 2 , " three " : 3

}

if 2 in

d:

print ( " value "

)

if " two " in

d:

print ( " key "

)

if ( " two " , 2 ) in

d:

print ( " kv "

)

# 按key來使用for迴圈 d = { " one " : 1 , " two " : 2 , " three " : 3

}

# 使用for迴圈,直接按key值訪問 for k in

d:

print

(k, d[k])

# 上述代碼可以改寫成如下 for k in

d.keys():

print

(k, d[k])

# 只訪問字典的值 for v in

d.values():

print

(v)

# 註意以下特殊用法 for k,v in

d.items():

print (k, ' -- ' ,v)

字典生成式

d = { " one " : 1 , " two " : 2 , " three " : 3

}

# 常規字典生成式 dd = {k:v for k,v in

d.items()}

# 加限制條件的字典生成式 dd = {k:v for k,v in d.items() if v % 2 == 0}

字典相關函數

  • len, max, min, dict

  • str(字典): 返回字典的字元串格式

  • clear: 清空字典

  • items: 返回字典的鍵值對組成的元組格式

  • keys:返回字典的鍵組成的一個結構

  • values: 同理,一個可迭代的結構

  • get: 根據制定鍵返回相應的值

    d = { " one " : 1 , " two " : 2 , " three " : 3

    }

    print (d.get( " on333 "

    ))

    # get預設值是None,可以設置 print (d.get( " one " , 100 ))

  • fromkeys: 使用指定的序列作為鍵,使用一個值作為字典的所有的鍵的值

    l = [ " eins " , " zwei " , " drei "

    ]

    # 註意fromkeys兩個參數的類型 # 註意fromkeys的調用主體 d = dict.fromkeys(l, " oops " )

四、表達式

運算符

  • 算數運算符

  • 比較或者關係運算符

  • 賦值運算符

  • 邏輯運算符

  • 位運算

  • 成員運算

  • 身份運算符

算數運算符

  • 加 +

  • 減 -

  • 乘 *

  • 除 /

  • 取餘 %

  • 取商(地板除) //

  • 冪運算 **

  • :warning:Python 沒有自增自減運算符

比較運算符

  • ==

  • !=

  • >=

  • <=

  • 比較的結果是布爾值(True/False)

賦值運算符

  • += (-=, ×=, /=, //=, %=, **=)

邏輯運算符

  • and 邏輯與

  • or 邏輯或

  • not 邏輯非

  • 結果如果是0則為False, 否則為True

  • 短路

  • Python 中沒有異或運算

成員運算符號

  • 用來檢測某一個變數是否是另一個變數的成員

  • in

  • not in

身份運算

  • is: 用來檢測兩個變數是否是同一個變數

  • is not: 兩個變數不是同一個變數

運算符的優先順序

  • 括弧具有最高優先順序

    ** 指數 (最高優先順序)

    ~ + - 按位翻轉

    ,

    一元加號和減號 (最後兩個的方法名為 +@ 和 -@)

    * / % // 乘,除,取模和取整除

    + - 加法減法

    \>> << 右移,左移運算符

    & 位 'AND'

    ^ | 位運算符

    <

    = < > > =

    比較運算符

    <>

    == ! =

    等於運算符

    = % = / = // = - = + = * = ** =

    賦值運算符

    is is not 身份運算符

    in not in 成員運算符

    not or and 邏輯運算符

五、程式結構

順序

分支

  • 基本語法

    # 表達式後面的冒號不能少 # 用縮進來表示同一個代碼塊 if

    條件表達式:

    語句1

    語句2

    語句3

    ..

  • 雙向分支

    # if 和 else 一個層級,其餘語句一個層級 if

    條件表達式:

    語句1

    語句2

    else

    :

    語句1

    語句2

  • 多路分支

    if

    條件表達式:

    語句1

    .

    elif

    條件表達式:

    語句1

    elif

    條件表達式:

    語句1

    ..

    else

    :

    語句1

    .

  • Python 沒有 switch-case 語句

迴圈

for 迴圈

for 變數 in

序列:

語句1

語句2

range

  • 生成一個數字序列

  • 範圍:[m,n)

    # 列印 1~10 for i in range( 1 , 11

    ):

    print (i)

for-else

  • 當for迴圈結束的時候,會執行else語句

  • else語句可選

while 迴圈

while

條件表達式:

語句塊

# 另外一種表達方法 while

條件表達式:

語句塊1

else

語句塊2

迴圈之break,continue,pass

  • break: 無條件結束整個迴圈,簡稱迴圈猝死

  • continue:無條件結束本次迴圈,從新進入下一輪迴圈

  • pass:表示略過,通常用於站位,沒有跳過功能

六、函數

  • def關鍵字

  • 代碼縮進

    # 定義 def

    func():

    print ( " 這是一個函數 "

    )

    # 調用 func()

函數的參數和返回值

  • 參數: 負責給函數傳遞一些必要的數據或者信息

    • 形參(形式參數): 在函數定義的時候用到的參數沒有具體值,只是一個占位的符號,成為形參

    • 實參(實際參數): 在調用函數的時候輸入的值

  • 返回值: 函數的執行結果

    • 使用 return 關鍵字

    • 如果沒有 return ,預設返回一個 None

    • 函數一旦執行 return 語句,則無條件返回,即結束函數的執行

      # return語句的基本使用 # 函數打完招呼後返回一句話 def

      hello(person):

      print ( " {0}, 你腫麽咧 "

      .format(person))

      print ( " Sir, 你不理額額就走咧 "

      )

      return " 我已經跟{0}打招呼了,{1}不理我 "

      .format(person, person)

      p

      = " 明月 " rst =

      hello(p)

      print (rst)

# 定義一個函數,列印一行九九乘法表 def

printLine(row):

for col in range( 1 , row + 1

):

# print函數預設任務列印完畢後換行 print ( row * col, end = " "

)

print ( ""

)

# 九九乘法表 # version 2.0 for row in range( 1 , 10

):

printLine(row)

參數詳解

  • 參數分類

    • 普通參數

    • 預設參數

    • 關鍵字參數

    • 收集參數

  • 普通參數

    • 參見上例

    • 定義的時候直接定義變數名

    • 調用的時候直接把變數或者值放入指定位置

      def 函數名(參數1, 參數2,

      .):

      函數體

      # 調用 函數名(value1, value2,

      .)

  • 預設參數

    • 形參帶有預設值

    • 調用的時候,如果沒有對相應形參賦值,則使用預設值

      def func_name(p1 = v1, p2 = v2

      .):

      func_block

      # 調用1

      func_name()

      # 調用2 value1 = 100 value2 = 200 func_name(value1,value2)

  • 關鍵字參數

    def func(p1 = v1, p2 = v2

    ..):

    func_body

    # 調用函數: func(p1 = value1, p2 = value2

    .)

  • 收集參數

    • 把沒有位置,不能和定義時的參數位置相對應的參數,放入一個特定的數據結構中

      def func( *

      args):

      func_body

      # 按照list使用方式訪問args得到傳入的參數 # 調用: func(p1, p2, p3,

      ..)

收集參數混合調用的順序問題

  • 收集參數,關鍵字參數,普通參數可以混合使用

  • 使用規則就是,普通參數和關鍵字參數優先

  • 定義的時候一般找普通參數,關鍵字參數,收集參數 tuple,收集參數 dict

返回值

  • 函數和過程的區別

    • 有無返回值

  • 需要用return顯示返回內容,

  • 如果沒有返回,則預設返回None

遞歸函數

  • python對遞歸深度有限制,超過限制報錯

    # 斐波那契額數列 # 一列數字,第一個值是1, 第二個也是1, 從第三個開始,每一個數字的值等於前兩個數字出現的值的和 # 數學公式為: f(1) = 1, f(2) = 1, f(n) = f(n-1) + f(n-2) # 例如: 1,1,2,3,5,8,13.。。。。。。。。 # n表示求第n個數子的斐波那契數列的值 def

    fib(n):

    if n == 1

    :

    return 1 if n == 2

    :

    return 1 return fib(n - 1 ) + fib(n - 2

    )

    print (fib( 3

    ))

    print (fib( 10 ))

  • 漢諾塔問題

    • 規則:

    • 方法:

  1. n=1: 直接把A上的一個盤子移動到C上, A->C

  2. n=2:

  3. n=3:

  4. n = n:

  1. 把小盤子從A放到B上, A->B

  2. 把大盤子從A放到C上, A->C

  3. 把小盤子從B放到C上, B->C

  1. 把A上的兩個盤子,通過C移動到B上去, 調用遞歸實現

  2. 把A上剩下的一個最大盤子移動到C上, A->C

  3. 把B上兩個盤子,藉助於A,挪到C上去, 調用遞歸

  1. 把A上的n-1個盤子,藉助於C,移動到B上去,調用遞歸

  2. 把A上的最大盤子,也是唯一一個,移動到C上,A->C

  3. 把B上n-1個盤子,藉助於A,移動到C上, 調用遞歸

  1. 每次移動一個盤子

  2. 任何時候大盤子在下麵,小盤子在上面

def

hano(n, a, b, c):

'''

漢諾塔的遞歸實現

n:代表幾個盤子

a:代表第一個塔,開始的塔

b:代表第二個塔,中間過渡的塔

c:代表第三個塔, 目標塔

''' if n == 1

:

print (a, " --> "

, c)

return

None

'''

if n == 2:

print(a, "-->", b)

print(a, "-->", c)

print(b, "-->", c)

return None

''' # 把n-1個盤子,從a塔藉助於c塔,挪到b塔上去 hano(n - 1

, a, c, b)

print (a, " --> "

, c)

# 把n-1個盤子,從b塔,藉助於a塔,挪到c塔上去 hano(n - 1 ,b, a, c)

a = " A " b = " B " c = " C " n = 1

hano(n, a, b, c)

n

= 2

hano(n, a, b, c)

n

= 3 hano(n, a, b, c)

查找函數幫助文檔

  • 用 help 函數

    help( print )

  • 使用__doc__

    def

    stu(name, age):

    '''

    這是文檔的文字內容

    :param name: 表示學生的姓名

    :param age: 表示學生的年齡

    :return: 此函數沒有返回值

    ''' pass print

    (help(stu))

    print ( " * " * 20

    )

    print (stu. __doc__ )

七、變數作用域

  • 分類:按照作用域分類

    • 全局(global): 在函數外部定義

    • 局部(local):在函數內部定義

  • LEGB原則

    • L(Local)局部作用域

    • E(Enclosing function locale)外部嵌套函數作用域

    • G(Global module)函數定義所在模塊作用域

    • B(Buildin): python內置魔抗的作用域

提升局部變數為全局變數(使用global)

def

fun():

global

b1

b1

= 100 print

(b1)

print ( " I am in fun "

)

# b2的作用範圍是fun b2 = 99 print

(b2)

fun()

print (b1)

globals, locals函數

  • 可以通過globals和locals顯示出局部變數和全局變數

    # globals 和 locals # globals 和 locals 叫做內建函數 a = 1 b = 2 def

    fun(c,d):

    e

    = 111 print ( " Locals={0} "

    .format(locals()))

    print ( " Globals={0} "

    .format(globals()))

    fun(

    100 , 200 )

eval()函數

  • 把一個字元串當成一個表達式來執行, 返回表達式執行後的結果

    eval(string_code, globals = None, locals = None)

exec()函數

跟eval功能類似, 但是,不返回結果

exec (string_code, globals = None, locals = None)


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

-Advertisement-
Play Games
更多相關文章
  • 門面模式-Facade Pattern 為一個複雜的模塊或子系統提供一個簡單的供外界訪問的介面 本文中代碼的例子如下: 一個礦場有很多礦工, 礦工的職責也都不一樣. 但一樣的是什麼呢? 一樣的就是每個礦工每天都在重覆一樣的事情....起床, 上班, 工作, 下班, 睡覺...... 要想管理這麼多礦 ...
  • 程式功能:實現兩個矩陣相乘的C語言程式,並將其輸出 代碼如下: 運行結果: ...
  • 保護代理模式-Access Proxy 保護代理模式(Access Proxy), 也叫Protect Proxy. 這種代理用於對真實對象的功能做一些訪問限制, 在代理層做身份驗證. 通過了驗證, 才調用真實的主體對象的相應方法. 模擬場景如下: 某平臺的系統有查詢功能, 可以根據關鍵詞進行查詢, ...
  • 1 非負整數:^\d+$ 2 3 正整數:^[0-9]*[1-9][0-9]*$ 4 5 非正整數:^((-\d+)|(0+))$ 6 7 負整數:^-[0-9]*[1-9][0-9]*$ 8 9 整數:^-?\d+$ 10 11 非負浮點數:^\d+(\.\d+)?$ 12 13 正浮點數 : ^... ...
  • JEEPlatform 一款企業信息化開發基礎平臺,可以用於快速構建企業後臺管理系統,集成了OA(辦公自動化)、SCM(供應鏈系統)、ERP(企業資源管理系統)、CMS(內容管理系統)、CRM(客戶關係管理系統)等企業系統的通用業務功能。Github鏈接:https://github.com/u01 ...
  • 鏈表是一種常見的基礎數據結構,它是一種線性表,但在記憶體中它並不是順序存儲的,它是以鏈式進行存儲的,每一個節點里存放的是下一個節點的“指針”。在Java中的數據分為引用數據類型和基礎數據類型,在Java中不存在指針的概念,但是對於鏈表而言的指針,指的就是引用數據類型的地址。 鏈表和數組都是線性的數據結 ...
  • 編寫登陸介面 基礎需求: 讓用戶輸入用戶名密碼 認證成功後顯示歡迎信息 輸錯三次後退出程式 升級需求: 可以支持多個用戶登錄 (提示,通過列表存多個賬戶信息) 用戶3次認證失敗後,退出程式,再次啟動程式嘗試登錄時,還是鎖定狀態(提示:需把用戶鎖定的狀態存到文件里) 註:需要先創建一個lock_fil ...
  • 學校的伺服器可以上外網了,所以打算寫一個自動爬取笑話併發到bbs的東西,從網上搜了一個笑話網站,感覺大部分還不太冷,html結構如下: 可以看到,笑話的鏈接列表都在<div class="list_title">裡面,用正則表達式可以把最近的幾個笑話地址找出來,再進到一個笑話頁面看下: 每一個笑話頁 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...