Python簡單試題2

2022-03-17 08:03:02 字數 3677 閱讀 2903

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...