執行結果和解析過程def extendlist(val,list=):
return list
list1 = extendlist(10)
list2 = extendlist(123,)
list3 = extendlist("a")
print(list1)
print(list2)
print(list3)
# 注意列印的位置不同,結果也會不同"""
[10, 'a']
[123]
[10, 'a']
考察點: 引用的指向、預設引數
list3和list1為同乙個列表,
而list2->extendlist(123,) 給list=重新賦值,是乙個重新的列表,
(1)當棧**現了乙個list1,list1指向了堆中的乙個空列表
(2)棧**現了乙個list2,list2指向了堆中的另乙個空列表,不是預設的空列表,是重新賦值的(list=)
(3)棧中 出現了乙個list3,並沒有在堆中重新建空列表,而是預設的列表,所以把"a"就新增到預設的列表中
"""
def extendlist(val,list=):
return list
list1 = extendlist(10)
print(list1)
list2 = extendlist(123,)
print(list2)
list3 = extendlist("a")
print(list3)
"""列印結果
[10]
[123]
[10, 'a']
"""
執行結果:def div1(x, y):
print("%s/%s=%s" % (x, y, x / y))
def div2(x, y):
print("%s//%s=%s" % (x, y, x // y))
div1(5,2)
div1(5.0,2) # 5. 就相當於5.0
div2(5,2)
div2(5.0,2)
"""
5/2=2.5
5.0/2=2.5
5//2=2
5.0//2=2.0
"""
執行結果:list1 = [ ] * 5
print(list1)
print(list1)
print(list1)
print(list1)
# 注意儲存的記憶體位址情況"""
[, , , , ]
[[10], [10], [10], [10], [10]]
[[10, 20], [10, 20], [10, 20], [10, 20], [10, 20]]
[[10, 20], [10, 20], [10, 20], [10, 20], [10, 20], 30]
思路: 在list1中儲存了5個空列表(其實記憶體中儲存的是5個同一列表位址,同乙個實體),
給其中乙個小列表中新增元素,所有的小列表都會被追加
"""
list1 = ['a', 'b', 'c', 'd']
print(list1[10:])
"""
列印結果:
"""
列印結果:def func(x, l=):
for i in range(x):
print(l)
func(2)
func(3, [3, 2, 1])
func(3)
"""
列印結果:
[0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 0, 1, 4]
"""
列印結果:def _add(a):
def add(b):
return a + b
return add
ad = _add(1)
print(ad(1))
print(ad(2))
print(ad(3))
"""
考察的是閉包,閉包中的外部和內部函式和普通函式的用法完全相同,可以設定引數和返回值
變數可以指向乙個函式,該變數可以被當做函式呼叫
列印結果:23
4"""
def myfunc(a, b, c, d):
print(a, b)
mylist = [1, 2, 3, 4]
myfunc(*mylist) # 傳的還是列表
"""
考察拆包和解包
注意 : 如果****作為實參,則將容器中的元素給形參進行賦值,
此時需要保證形參和實參的數量一致
列印結果:
1 2"""
str1 = "hello python"
str1.title()
print(str1)
"""
title()將每個字串的首字母大寫,但是特別注意的是
只要遇到字串的改變得到都是新字串,原字串不變
要賦值給乙個新的變數,再進行列印
hello python
"""
def text(l):
l[1] = 10
list1 = [1, 2, 3, 4]
text(list1)
print(list1)
"""
# 引用傳遞:如果形參發生改變,則實參也會隨著發生改變
列印結果
[1, 10, 3, 4]
"""
a0 =
a1 = range(10)
a2 = [i for i in a1 if i in a0]
a3 = [a0[s] for s in a0]
a4 = [i for i in a1 if i in a3]
a5 =
a6 = [[i, i * i] for i in a1]
print(a0)
print(a1)
print(a2)
print(a3)
print(a4)
print(a5)
print(a6)
"""
a2裡面的條件都不滿足,都不是鍵,即為空列表
a3相當於取了a0裡面的所有的鍵對應的值組成乙個列表
列印結果:
range(0, 10)
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]
"""
python面試題(一)
整理了一些python面試可能遇到的題,提供給大家,希望能對大家有用!1.下面的 會輸出什麼?def extend list val,list return list list1 extend list 10 list2 extend list 123,list3 extend list a pri...
python面試題(一)
最近因為找工作,所以在牛客網上刷了一些題,想在部落格上記錄下來自己的想法 寫的不好還請大家多指教。1.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含...
python語法面試題 python面試題
1.去重,集合 集合的乙個重要特點是 自動去除重複的值 li 1,2,3,1,1,2,2,3,3 去除重複的元素 set set li 轉換為集合,因為集合會自動去重。print set li list set 將集合轉換為列表print li 2.生成器 規則 生成器函式,或者生成器表示式,在呼叫...