天天看點

python基礎知識

前言

python中需要特别注意代碼的縮進,這不是為了可讀性而是正确性,不像 C#,lua ( function do end),js等語言的函數範圍用{}表示。

對于判斷是否包含盡量使用in,而不使用for,具體參考:《Python程式設計慣例.md》

Non-ASCII character

python報錯“Non-ASCII character '\xe5' ”

解決方法:

在Python源檔案的最開始一行,加入一句

# coding=UTF-8
#或者
# coding:UTF-8 --
      

變量定義

不需要var 也不要寫類型,直接寫變量名,全局和局部變量都不需要寫類型

變量的定義需要放在使用的前面,可以了解為像C那樣順序執行的,而不像C#。

假如全局和局部名相同,而要特殊聲明使用的是全局變量,則在變量明名前加上 global

x = 100
def func():
    global x
    print(x)
    x = 2
    print(x)
func()
print(x)

      

輸出結果為:

100 2 2

關于變量的詳細可參考這篇文章《python變量(全局、局部):global、nonlocal、locals》

函數定義

def 函數名:
	函數内容
      

傳回值

def sum(a,b):
    return a+b,a-b

test1,test2=sum(2,1)
print(test1,test2)
#輸出 3 1
      

多傳回值,通過,分隔,這點用lua的寫法一樣

可變參數

或者定義成如下: def add(*args):

#可變參數
def calcTotal(nums):
    total = 0;
    for num  in nums:
        total = total + num
    return total

print(calcTotal((1,2,3)))

#輸出 6
      

代碼注釋

# 單行注釋

""" 要注釋的内容
多行注釋,三個雙引号連接配接
""" 
      

輸入與輸出

name=input("請輸入帳号")
pwd=input("請輸入密碼")
print("name:%s,pwd:%s"%(name,pwd))
#輸出
請輸入帳号111
請輸入密碼222
name:111,pwd:222

#用空格連接配接
print(name,pwd)
111 222
#輸出
      

【注意引号後面沒有,也沒有空格】

轉義字元後接 %()

資料結構-dict

判斷字典中不存在key

if "skin_name" not in hero:
    print("資料異常")
    return
      

資料結構-list

周遊清單

for k in range(len(skins)):
      

邏輯控制

If和elif後面加冒号:

沒有++和--

for else一般很少用,當for循環要退出時要加break

for循環

for i in range (0,2):
    print(i)#列印0,1
      

python類中的方法,需要傳入self,這點和原生的Lua是一樣的。

py檔案執行完不直接退出

在python檔案的未尾添加一行輸入符,等待使用者按下任意鍵才會退出

python執行

python test.py 和python -m test.py 這兩者的差別?

直接運作會将該腳本所在目錄添加至sys.path

當做子產品啟動則會将目前運作指令的路徑添加至sys.path

end=

end=,對于文本中文字本來就是有換行的,如果想在輸出時不換行,可以寫end="",如果不加,那麼會多出換行

filepath = r'E:\Code\test.txt'
with open(filepath, mode="r", encoding="utf-8") as f:
    for line in f:
        print(line)

"""
不加 end=""
第一行

第二行

共三行
"""

"""
加上end=""
第一行
第二行
共三行
"""
      

常見代碼

tuple 元組

__name__是Python中一個隐含的變量它代表了子產品的名字
隻有被Python解釋器直接執行的子產品的名字才是__main__
if __name__ == '__main__':
      

善于使用in運算符。

if x in items: # 包含
for x in items: # 疊代
      
name = 'Hao LUO'
if 'L' in name:
    print('The name has an L in it.')
      

參考資料

下一篇: Docker