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(值)是否相等