python好題集 持續更新

2021-10-12 12:55:52 字數 4774 閱讀 7042

1、【多選】下面的**,哪些是執行會報錯的

a. int(33)   b. int(『3.3』)   c. float(3h)   d. str([1,3])

答案解析:b選項 』3.3』為字串,不能轉換成int;c選項 3h是錯誤表達,不能進行轉換。故選bc

2、【多選】定義這樣乙個函式 - 下面說法正確的是

defe1(

):print

('in e1'

)return

false

a. 執行 false and e1() 螢幕會 顯示 『in e1』

b. 執行 e1() and false 螢幕會 顯示 『in e1』

c. 執行 true or e1() 螢幕會 顯示 『in e1』

d. 執行 false or e1() 螢幕會 顯示 『in e1』

答案解析:

本題考查and和or的用法。

and用法:一假都假,全真才是真

or用法:一真全真,全假才是假

a選項:考察and。false為假,一假全假,那麼就不會繼續判斷了,所以走不到e1()

b選項:考察and。呼叫e1(),不管return什麼,都不影響列印『in e1』

c選項:考察or。true為真,一真全真,那麼就不會繼續判斷了,所以走不到e1()

d選項:考察or。第乙個為false,全假才是假,所以繼續判斷,呼叫e1(),不管return什麼,都不影響列印『in e1』

故正確的只有bd

3、【判斷】下面的**執行完後,變數b 的值仍然為 『a』

def

f1(para)

: para=

3b =

'a'f1(b)

答案解析:f1(b)相當於f1(『a』),將『a』傳入函式中,』a『=3,並沒有對b的值進行更新,所以b的值不變

故答案:正確

4、【判斷】下面的**執行完後,變數b 的值仍然為 [1]

def

f1(para)

: para[0]

=3b =[1]

f1(b)

答案解析:f1(b)相當於f1([1]),將[1]傳入函式中,[1][0]=3表示對列表[1]索引為0的值更新為3,所以b的值變為3

故答案:錯誤

5、以下**輸出結果為

x =

true

y =false

z =false

ifnot x or y:

print(1

)elif

not x or

not y and z:

print(2

)elif

not x or y or

not y and x:

print(3

)else

:print(4

)

a、1   b、2  c、3  d、4

答案解析:

本題考察優先順序:not>and>or。not x為false、not y為true

a:false or false==>false

b:not y and z 即為 true and false=>false,false or false=>false

c:not y and x 即為 true and true =>true ,false or false or true =>true

只有3對應的判斷返回true,故選c

6、以下**輸出結果為

def

greetperson

(*name)

:print

('hello'

, name)

greetperson(

'runoob'

,'google'

)

a、hello runoob

hello google

b、hello (『runoob』, 『google』)

c、hello runoob

d、錯誤!函式只能接收乙個引數。

7、以下**輸出結果為

result =

lambda x: x * x

print

(result(5)

)

a、lambda x: xx   b、10  c、25  d、55

答案解析:

lambda函式,也稱匿名函式,匿名函式可以在程式中的任何地方使用,但是這個函式只能使用一次,即一次性的,lambda也稱為丟棄函式

lambda 形參列表 : 函式返回值表示式語句

所以傳入5,返回計算結果25

8、以下**輸出結果為

def

foo(x):if

(x==1)

:return

1else

:return x+foo(x-1)

print

(foo(4)

)

a、10  b、24  c、7  d、1

答案解析:

第一次走else: 4+foo(3)

第二次走else: 4+(3+foo(2))

第三次走else: 4+3+(2+foo(1))

第一次走if: 4+3+2+1=10

故a正確

9、以下**輸出結果為

x=

2def

foo():

global x

x=9print

('x1='

,x)foo(

)print

('x2='

,x)

a、x1= 9 x2= 9  b、x1= 9 x2= 2

答案解析

正確選項:a。因為在函式中申明了x為全域性變數,所以呼叫函式時,x的值由2變成了9,故輸出均是9

10、求 1000 以內的完全數有哪些?(如果乙個數恰好等於它的因子之和,則稱該數為「完全數」)

例如: 6,它有約數 1、2、3、6,除去它本身 6 外,其餘 3 個數相加為6

for i in

range(1

,1000):

sum=

0for j in

range(1

, i)

:if i % j ==0:

sum+= j

ifsum== i:

print

(i,end=

' ')

==>624

28496

11、已知乙個佇列[1, 3, 6, 9, 7, 3, 4, 6] 按從小到大排序、按從大大小排序 、去除重複數字

list1 =[1

,3,6

,9,7

,3,4

,6]sorted

(list1)

print

(f'從小到大:'

)print

(f'從大到小:'

)print

(f'去除重複數字:')==

>

從小到大:[1,

3,3,

4,6,

6,7,

9]從大到小:[9,

7,6,

6,4,

3,3,

1]去除重複數字:[1,

3,4,

6,7,

9]

12、請寫乙個函式ctoa,引數是1個字母,請返回該字母對應的ascii碼數字

def

ctoa

(letter)

:return

ord(letter)

letter =

'a'print

(f'對應的ascii碼數字:'

)

13、請寫乙個函式is_symmetrical,引數是1個數字,請返回該數字是否對稱

def

is_symmetrical

(digital1)

: str1 =

str(digital1)

iflen

(str1)%2

==1: str1 = str1[

:len

(str1)//2

]+str1[

len(str1)//2

+1:]

left_str = str1[

:len

(str1)//2

] right_str = str1[

len(str1)//2

:]if left_str==right_str[-1

::-1

]:print

(true

)else

:print

(false

)digital1 =

123421

is_symmetrical(digital1)

python好題 更新中

多選 定義這樣乙個函式 下面說法正確的是 defe1 print in e1 return falsea.執行 false and e1 螢幕會 顯示 in e1 b.執行 e1 and false 螢幕會 顯示 in e1 c.執行 true or e1 螢幕會 顯示 in e1 d.執行 fal...

python好題 更新中

多選 定義這樣乙個函式 下面說法正確的是 def e1 print in e1 return false a.執行 false and e1 螢幕會 顯示 in e1 b.執行 e1 and false 螢幕會 顯示 in e1 c.執行 true or e1 螢幕會 顯示 in e1 d.執行 f...

好的程式設計習慣 持續更新

1 環狀程式設計 環狀程式設計思維,主要體現在資源的使用上,要形成乙個環狀 自0開始,亦終至0。中間階段則是在使用分配的資源,最終要將資源 不能造成溢位或者資源的多餘。2 極限 在編寫函式的時候,要考慮一些極限個資料的情況。比如排序,要考慮入參為0個資料的情況。諸如此類,要注意總結。3 定製樹 如果...