python 面試題
阿新 • • 發佈:2018-08-02
添加 git num bre you urllib round import 5.6
前段時間面試碰到的一組python面試題,雖然很簡單但是特別的基礎.
1.Python 如何判斷二維數組中是否包含整數?
array = [[1, 3, 5.6, 7.2, 8, 9.9], [2.5, 4.7, 6.8, 7.3, 9, 10], [3.7, 6.7, 9.8, 9.9, 11, 12.1]] for i in array: for j in i: if str(j).isdigit(): # 判斷是否是整數還可以通過isinstance(j, int)
print("二維列表中包含整數") break break
2.如何將字符串中的空格轉變成為%20?
# 1.通過替換方式實現 >>> str = "how do you do" >>> str.replace(" ", "%20") ‘how%20do%20you%20do‘ # 2.通過編碼的方式實現 >>> from urllib import parse >>> parse.quote(str) ‘how%20do%20you%20do‘
3.把列表的重復元素刪除?
# 通過set的方式先去重,在轉換為列表 >>> list1 = [1, 3, 3, 4, 1, 2] >>> list(set(list1)) [1, 2, 3, 4]
如果第一題變成先生成一個4* 4 的維數組,然後再次去判斷是否包含整數,這裏我們需要考慮生成數組;
array = [] for j in range(0, 4): array1 = [] for i in range(1, 5): array1.append(i) array.append(array1) print(array)
通過兩個for循環就可以生成,雖然簡單我們還是滿足要求的,下面在增加需求4* 4 的數組,但是要求二維數組中即包含整數又包含小數;
import random array= [] for j in range(0, 4): array1 = [] for i in range(0, 4): radNum = random.randint(0, 100) if radNum % 2 == 0: # 如果是偶數生成1,10之間整數,如果是基數生成一個小數,並且保留2為小數 array1.append(random.randint(1, 10)) else: array1.append(round(random.uniform(1, 10), 2)) array.append(array1)
繼續增加復雜度,每行的數值,從左到右數值需要依次增大
import random array = [] for j in range(0, 4): array1 = [] for i in range(0, 4): radNum = random.randint(0, 100) if radNum % 2 == 0: # 如果是偶數生成1,10之間整數,如果是基數生成一個小數,並且保留2為小數 if len(array1) == 0: # 判斷當前列表長度是不是0,如果是0,代表列表沒有任何元素,那麽直接添加元素 element = random.randint(0, 100) array1.append(element) else: element = random.randint(int(array1[-1]) + 1, int( array1[-1]) + 100) # 否則生成的元素一定要大於最後一個元素,並且避免出現最後一個元素和生成隨機數的邊界值相差太小,同時自動增長100 array1.append(element) else: if len(array1) == 0: element = round(random.uniform(0, 100), 2) array1.append(element) else: element = round(random.uniform(array1[-1] + 1, array1[-1] + 100), 2) array1.append(element) array.append(array1)
python 面試題