python2使用isalnum函式的坑

2022-07-26 19:30:12 字數 669 閱讀 6651

我們專案使用的框架是django 1.6.11,最近在優化專案搜尋功能,需要根據使用者輸入的不同型別的值去走不同的搜尋邏輯,比如使用者輸入關鍵字只有數字或字母的情況,一般我們遇到這種情況,首先會想到使用isalnum方法判斷字串是否只包含數字或字母,但是我在用的時候就有問題了;

接收使用者輸入引數的**:

entname = request.get.get("key").strip() if request.get.get("key") else ""正常情況當使用者輸入關鍵為 "小公尺科技",entname.isalnum的返回值為false,但是出人意料的是返回值為true,

後來通過分析原來是因為字串編碼的問題

當通過上面**接收的引數型別為unicode,所以會出現上述問題:

要避免該問題,需要對接收的字串進行編碼為字串型別, **如下:

alpha_entname = entname.encode('utf-8'),這時就可以正常使用了

Python 2 迴圈的使用

一 while迴圈和for迴圈 例 依次列印出學生的姓名 while迴圈 students mike jack mary pat will lisa idx 0 while idx二 break和countiue使用方法 break語句 中止迴圈 name age a 10 b 15 c 2 d 2...

Python2學習筆記(2)

python 中可以直接處理的資料型別包括整數 浮點數 字串 布林值 空值。此外,python還提供了list 字典等資料型別。同時也允許自定義資料型別。30 3 10 10 3 3 10.0 3 3.3333333333333335 10 3.0 3.3333333333333335 print ...

Python2編碼問題

以下內容說的都是 python 2.x 版本 我們看到的輸入輸出都是 字元 characters 計算機 程式 並不能直接處理,需要轉化成位元組資料 bytes 因為程式只能處理 bytes 資料。例如 檔案 網路傳輸等,處理的都是 bytes 資料 二進位制數字。孤立的 byte 是毫無意義的,所...