測試面試 python基礎程式設計題

2021-10-04 23:16:38 字數 4000 閱讀 1852

1.列表的去重

方法1:保持原列表的順序

l=[1

,2,2

,4,8

,7]l1=

list

(set

(l))

#使用set()去重,無序

l2=sorted

(l1,key=l.index)

#使用sorted的key關鍵字按列表l的索引值排序

#或者使用list自帶的方法sort

l1.sort(key=l.index)

方法2:利用字典的fromkeys()

l=[1

,2,2

,4,8

,7]l1=

list

(.fromkeys(l)

.keys())

#

方法3:利用新的列表

def

func

(l):

l1=for x in l:

if x not

in l1:

return l1l=[

1,2,

2,4,

8,7]

print

(func(l)

)

2.字串的反轉

方法1:使用切片步長

str1=

"hello"

print

(str1[::

-1])

方法2:利用reduce函式

from functools import

reduce

str1=

"hello"

reduce

(lambda x,y:y+x,str1)

3.字典的key與value反轉

方法1:使用zip函式

dic=

l1=list

(dic.keys())

#獲取字典的所有key

l2=list

(dic.values())

#獲取字典的所有value

dic2=

dict

(zip

(l2,l1)

)#通過zip函式組裝

print

(dic2)

方法2:利用字典推導式及字典的dict.items()方法

dic=

dic3=

print

(dic3)

4.統計字串中字母出現的次數

方法1:利用counter()方法

from collections import counter

str1=

"hello world"

str1=str1.replace(

' ','')

#先去除字串中的空格

collect=counter(str1)

#執行結果

counter(

)

方法2:利用字典的setdefault()方法

str1=

"hello world"

str1=str1.replace(

' ','')

#新建乙個字典,key用於存放字串中的字元,value存放字元出現的次數

dic=

for i in str1:

#使用setdefault()向dic插入鍵值對,key為字串中的每個字元,value為0

dic.setdefault(i,0)

#讀入str1字串中的字元後,修改對應值+1

dic[i]+=1

#執行結果

5.斐波拉契數列

#求n以內的斐波拉契數列

deffunc

(n):

i,j=0,

1 l=[0

,1]while i+jnum=i+j

i,j=j,num

print

(l)func(

100)

#執行結果[0

,1,1

,2,3

,5,8

,13,21

,34,55

,89]

6.氣泡排序

def

func

(l):

for i in

range

(len

(l))

:for j in

range

(i,len

(l))

:if l[i]

>l[j]

: l[i]

,l[j]

=l[j]

,l[i]

return ll=[

1,5,

2,1,

0,6,

7,4]

print

(func(l)

)#執行結果[0

,1,1

,2,4

,5,6

,7]

7.不使用迴圈,列印1-n

迴圈可以用迭代來等價實現

def

prints

(n):

if n>0:

prints(n-1)

print

(n,end=

' ')

#end=' ',使用空格代替換行

prints(10)

#執行結果12

3456

78910

8.計算n的階乘

方法1:使用迭代

def

func

(n):

if n==1:

return n

return n*func(n-1)

func(10)

#執行結果

3628800

方法2:使用reduce

from functools import

reduce

print

(reduce((

lambda x,y:x*y)

,range(1

,11))

)#執行結果

3628800

9.找出兩個字串中的最大公共子串

def

func

(str1,str2)

: maxstr=

0 p=

0 record=[[

0for i in

range

(len

(str2)+1

)]for j in

range

(len

(str1)+1

)]for i in

range

(len

(str1)):

for j in

range

(len

(str2)):

if str1[i]

==str2[j]

: record[i+1]

[j+1

]=record[i]

[j]+

1if record[i+1]

[j+1

]>maxstr:

maxstr=record[i+1]

[j+1

] p=i+

1return record[i+1]

[j+1

],str1[p-maxstr:p]

print

(func(

"hello"

,"elallo"))

#執行結果(3

,'llo'

)

Python基礎程式設計題

1 接收輸入的一行字元,統計出字串中包含數字的個數 str input 請輸入一串字元 count 0for i in str if i.isdigit count count 1print 數字個數 d count 2 請輸入星期幾的第一 個字母,用來判斷是星期幾,如果第乙個字母一樣,則繼續判斷第...

Java基礎程式設計題 API階段測試

試卷答題說明 1.總分100分 2.專案名稱用自己的中文名字 如果本班有重名的學員,則在專案名稱後加上學號,如 張三001和張三002 3.包名為com.itheima.tests,總共5道題目分別命名為test01 test02 4.提交答案的方法 直接將專案複製出來打成zip壓縮包發給老師,千萬...

測試開發面試基礎(python)

1使用列表推導式輸出1 100的列表 print i for i in range 100 2使用列表推導式輸出1 100內的奇數 print i for i in range 100 if i 2 1 print i for i in range 1,100,2 print i for i in ...