python3-開發面試題(python)6.24基礎篇(3)


1、用一行代碼實現數值交換:

 a = 1

 b = 2

a,b=b,a

 

2、Python3和Python2中 int 和 long的區別?

long整數類型被Python3廢棄,統一使用int

 

3、xrange和range的區別?

xrange函數被Python3廢棄,統一使用range,Python3中range的機制也進行修改並提高了大數據集生成效率

range和xrange都是在循環中使用,輸出結果一樣

range 返回的是一個list對象,而xrange返回的是一個生成器對象(xrange object)

xrange則不會直接生成一個list,而是每次調用返回其中的一個值,內存空間使用極少,因而性能非常好

 

4、文件操作時:xreadlines和readlines的區別?

二者使用時相同,但返回類型不同,xreadlines返回的是一個生成器,readlines返回的是list

 

5、列舉布爾值為False的常見值?

None,0,空(空字符串,空列表,空字典等)

 

6、字符串、列表、元組、字典每個常用的5個方法?

#字符串操作
words = 'today manyqian is handsome'
print(words.strip('today'))#如果strip方法指定一個值的話,那么會去掉這兩個值
print(words.count('a'))#統計字符串出現的次數
print(words.index('is'))#找下標
print(words.index('z'))#找下標如果元素不找不到的話,會報錯
print(words.find('a'))#找下標,如果元素找不到的話,返回-1
print(words.replace('day','DAY'))#字符串替換
print(words.isdigit())#判斷字符串是否為純數字
print(words.islower())#判斷字符串是否為小寫字母
print(words.isupper())#判斷字符串是否為大寫字母
print(words.startswith('http'))#判斷是否以某個字符串開頭
print(words.endswith('.jpg'))#判斷是否以某個字符串結尾
print(words.upper())#將字符串變成大寫
print(words.lower())#將字符串變成小寫

 

#列表操作  l=[1,2,3,4,5,6]
1、按照索引存取值(正向存取+反向存取):即可存也可以取
l[0]=1
l[-1]=6
2、切片
l[0:2]   #[1,2] 顧頭不顧尾
l[0:4:2]    #[2,4] 是步長
3、長度 
len(l)
4、成員運算in和not in 
1 in l    #Ture
0 not in l #False
5、追加
l.append(7)   #末尾追加
6、刪除
del l[0]   #查看數據已經刪除所選數據
7、循環
for i in range(6):
    print(l[i])
for i in l:
    print(i)      

 

#元組的常用操作,和列表相似 ,元組不可變,值是無法改變
l=(1,2,3,4,5,6)
1、按索引取值(正向取+反向取):只能取  
l[0]    #1
2、切片(顧頭不顧尾,步長)
l[0:2]    #(1,2)
3、長度
len(l)    #6
4、成員運算in和not in 
1 in l    # Ture
1 not in l #False
5、循環
for i in l:
    print(i)

 

# 字典
D ={'a':'1','b':'2','c':'3'}
每一個元素是pair,包含key、value兩部分。key是Integer或string類型,value 是任意類型。
鍵是唯一的,字典只認最后一個賦的鍵值。

dictionary的方法
D.get(key, 0)       #同dict[key],多了個沒有則返回缺省值,0。[]沒有則拋異常
D.has_key(key)      #有該鍵返回TRUE,否則FALSE
D.keys()            #返回字典鍵的列表
D.values()
D.items()

D.update(dict2)     #增加合並字典
D.popitem()         #得到一個pair,並從字典中刪除它。已空則拋異常
D.clear()           #清空字典,同del dict
D.copy()            #拷貝字典
D.cmp(dict1,dict2)  #比較字典,(優先級為元素個數、鍵大小、鍵值大小)
                    #第一個大返回1,小返回-1,一樣返回0
            
dictionary的復制
dict1 = dict        #別名
dict2=dict.copy()   #克隆,即另一個拷貝。

 

7、lambda表達式格式以及應用場景?

1、應用在函數式編程中

# 需求:將列表中的元素按照絕對值大小進行升序排列
list1 = [3,5,-4,-1,0,-2,-6]
print(sorted(list1, key=lambda x: abs(x)))  #[0, -1, -2, 3, -4, 5, -6]

當然,也可以如下:

list1 = [3,5,-4,-1,0,-2,-6]
def get_abs(x):
    return abs(x)
print(sorted(list1,key=get_abs))  # [0, -1, -2, 3, -4, 5, -6]

 

2、應用在閉包中

def get_y(a,b):
     return lambda x:a*x+b
y1 = get_y(1,1)
print(y1(1)) # 結果為2

#常規函數實現閉包

def get_y(a,b):
    def func(x):
        return a*x+b
    return func
y1 = get_y(1,1)
print(y1(1)) # 結果為2

Python之禪  Explicit is better than implicit(明了勝與晦澀),不能盲目用匿名函數

 

8、pass的作用?

1、空語句

2、保證格式完整

3、保證語語義完整

 

9、*args和**kwargs作用

*args:可以理解為只有一列的表格,長度不固定

**kwargs:可以理解為字典,長度也不固定

1、函數調用里的*args和**kwargs:

  (1)*args:元組或列表‘出現’

       (2)分割參數

2、函數定義時傳的*args/**kwargs

  (1)接收參數

 

10、is和==的區別

is同一性運算符  比較判斷的是對象間的唯一身份標識,id是否相同

==比較操作符  比較判斷兩個對象的value(值)是否相等

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM