1,給定一組資料,將奇數進行從小到大排序,偶數在原位置不變
例: 原資料:[5, 3, 2, 8, 1, 4]
排序後:[5, 3, 2, 8, 1, 4]
若陣列為空,則返回空陣列。
**如下:
1方法一:
2def
sort_array(source_array):3#
return a sorted array.4#
首先判斷陣列是否為空5if
not source_array : return
source_array
6 length = len(source_array) #
求陣列的長度
7for i in range(length): #
進行迴圈
8if source_array[i] % 2 == 0: #
若為偶數,則跳過
9continue
10for j in range(i+1,length): #
兩層迴圈,進行排序
11if source_array[j] % 2 == 0: #
若為偶數,則跳過
12continue
13if source_array[i] > source_array[j]: #
排序14 t =source_array[i]
15 source_array[i] =source_array[j]
16 source_array[j] =t
17return source_array #
返回排序後的陣列
18方法二(高階版,臨摹大佬的):
19def
sort_array(arr):
20 odds = sorted((x for x in arr if x%2 != 0), reverse=true)21#
當x為奇數時,挑選出來,進行從大到小排序22#
sorted預設為從小到大,加上reverser表示反轉的意思
23return [x if x%2==0 else odds.pop() for x in
arr]24#
返回陣列,odds.pop()為刪除最後乙個資料並返回
2,返回最大值和最小值
給定乙個字串,「1 2 2 3」,數字中間由空格隔開,保證字串最少有乙個字元,返回字串中字元數值的最大值,最小值
最大值在前,最小值在後,中間同樣有空格相隔開
例:原字串:『1 2 3 4』,『25 8 9 -989 』
返回值:『4 1』 , 『25 -989』
**如下:
方法一:defhigh_and_low(numbers):
#...
numbers = numbers.split('')
#將字串分隔開並轉化為列表,每乙個字元為列表的一項
num_max = int(numbers[0]) #
給num_max賦值列表的第一項的數值形式
num_min =int(numbers[0])
for i in numbers: #
進行迴圈,求出最大值和最小值
if num_max num_max =int(i)
if num_min >int(i):
num_min =int(i)
return
'%d %d
'%(num_max,num_min) #
進行格式化返回
方法二(高階版,臨摹大佬):
defhigh_and_low(numbers):
n = map(int,numbers.split('
')) #
利用map函式產生兩個迭代器
m = map(int,numbers.split(''))
return str(max(n)) + '
' + str(min(m)) #
進行字串拼接
3,母音數
給定乙個字串,字串由小寫字母和空格組成,求出母音字母的個數,並返回。
母音字母:a,e,i,o,u
例:引數:'abcdefg'
返回值:2
**如下:
方法一:defgetcount(inputstr):
num_vowels = 0 #
給定初始值
#your code here
vowel = '
aeiou'#
賦值乙個包含母音字母的字串
for i in inputstr: #
進行迴圈
if i in vowel: #
判斷字元是否為母音字元
num_vowels += 1
return
num_vowels
方法二(臨摹版本,沒有搞明白):
defgetcount(inputstr):
return sum(1 for let in inputstr if let in
'aeiou
')
4,序列和
給定三個數字,分別代表起始數字,結束數字,步長,求出序列的和值。
如果起始數字大於結束數字,則返回零
例:引數:(2, 6, 2),(1, 5, 3),(10, 5, 3)
返回值:12,5,0
**如下:
#方法一:
defsequence_sum(begin_number, end_number, step):
#your code here
if begin_number > end_number : #
判斷起始數字是否大於結束數字
return
0 sum =0
while begin_number <= end_number: #
進行迴圈
sum += begin_number #
求和 begin_number +=step
return
sum#
方法二:
defsequence_sum(begin_number, end_number, step):
return sum(range(begin_number,end_number+1,step)) #
運用內建函式求和
python簡單面試題(2)
首先搭建環境,然後根據專案搭建自動化框架,編寫自動化用例,整理用例,自動生成測試報告,然後整合到jenkins上進行操作 出現anr和crash進行復現抓取日誌 adb命令 編寫自動化用例的時候斷言編寫清楚,然後也可以通過用例失敗後進行截圖進行儲存,方便我們後續檢視用例失敗原因,自動化用例失敗後,進...
Python簡單試題3
1,水仙花數 水仙花數是指乙個 3 位數,它的每個位上的數字的 3次冪之和等於它本身 例如 1 3 5 3 3 3 153 如下 方法一 for i in range 100,1000 進行for迴圈 num i a num 10 取出個位數 num num 10 向下整除 b num 10 取出十...
python簡單習題2
p a b c 2p frac p 2a b c s p p a p b p c s sqrt s p p a p b p c import math a float input 邊長a b float input 邊長b c float input 邊長c if a b c and b c a a...