日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

2019年 python 爬蟲面試題 參考答案不對(duì)的請(qǐng)指出 持續(xù)更新 7/7

系統(tǒng) 1784 0

1. import 導(dǎo)入模塊
import xxx,xxx,xxx 可以同時(shí)導(dǎo)入多個(gè)庫
建議每次導(dǎo)入一個(gè)。

            
              	from xxx  import  xx  從模塊中導(dǎo)入指定方法
	xx()導(dǎo)入的方法就直接用

            
          

2. python基本數(shù)據(jù)類型
數(shù)字(int float long complex(復(fù)數(shù))) 字符串 列表 字典 元組 集合 py3去除long了,擁抱py3吧
其中complex是高中數(shù)學(xué)知識(shí),不知道的就直接百度。

3. 區(qū)分可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型
就是變量的內(nèi)存地址變不變的問題
可變數(shù)據(jù)類型:字典dict,列表list
不可變數(shù)據(jù)類型:整型int 浮點(diǎn)數(shù)float 字符串str 元組tuple
比較拗口, 地址不能變的叫可變數(shù)據(jù),地址能變到叫不可變數(shù)據(jù) ,完全相反的。。。。。。。。。。。

4. 將"hello world"轉(zhuǎn)換為首字母大寫"Hello World"
我開始是這么寫的,這里有個(gè)map函數(shù),功能是把方法映射到后面的列表中每一位。map(方法,列表)=>2個(gè)參數(shù)

            
              def q(n):

	"""轉(zhuǎn)換大小寫方法,沒有用for,
	因?yàn)閒or遇到return就結(jié)束了,
	那時(shí)候的 b = ["H","W"],自己試一下就知道了 """
	
    return n[:1].upper() + n[1:].lower()

if __name__ == '__main__':
    a = ['hello', 'world']
    b = list(map(q, a)) # q是方法,a是列表
    print(b[0]+" "+b[1])
    
    結(jié)果是 Hello World

            
          

后來知道有個(gè)函數(shù) capitalize() 專門干這個(gè)首字母大寫的

            
              def q(n):
	""" 實(shí)現(xiàn)capitalize()方法"""
    return name.capitalize()


a = 'hello world'
a1 = a.split(" ")
b = list(map(q, a1))
print(b)

  結(jié)果是 Hello World

            
          

5. 如何檢測(cè)字符串中只含有數(shù)字?

            
              import re

res = str(input("輸入一個(gè)字符串:"))# 確保輸入是字符串
value = re.findall(r'\d+', res) 
# 返回一個(gè)列表

if len(value) == 0:
 # 假如輸入都不是數(shù)字,那value必然是空列表
    print("字符串不是全數(shù)字")
    
elif len(value[0]) == len(res):
 # 捕獲到全部輸入是數(shù)字,
#那么一定是在第一個(gè)value[0]的位置,然后長度和輸入相同就OK了
    print("字符串全部是數(shù)字")
    
else:
    print("字符串不是全數(shù)字")

            
          

6. 將字符串"ilovechina"進(jìn)行反轉(zhuǎn)

            
              #切片法,還可以用 reversed()方法 ,遞歸,或者其他
	value = "ilovechina"  
	res = value[::-1]
	print(res)

 reversed()方法 
	value = "ilovechina"
	res = reversed(value)
	print(res)
	 #這里的返回值是一個(gè)地址,原因是reversed返回的是一個(gè)迭代器
	 #print(”“.join(res)) 就可以把結(jié)果顯示出來了

            
          

一個(gè)函數(shù)的輸出是print(xxx),把print(xxx)換成 yeild xxx 就變成了生成器函數(shù)。結(jié)果是一個(gè)迭代器,迭代器是一個(gè)變量,就是xxx這個(gè)變量叫迭代器。效果就是節(jié)約內(nèi)存。

7. Python 中的字符串格式化方式你知道哪些?

            
              百分號(hào)%
format

            
          

8. 有一個(gè)字符串開頭和末尾都有空格,比如“ adabdw ”,要求寫一個(gè)函數(shù)把這個(gè)字符串的前后空格都去掉。

            
              str = ' adabdw '
newstr = str.split(' ')
print(newstr)
print(newstr[1])
結(jié)果
['', 'adabdw', '']
adabdw

            
          

9. 獲取字符串”123456“最后的兩個(gè)字符。

            
              str = '123456'
ns = str.split('4')
print(ns[1])
結(jié)果 56

            
          

10. 一個(gè)編碼為 GBK 的字符串 S,要將其轉(zhuǎn)成 UTF-8 編碼的字符串,應(yīng)如何操作?

            
              UTF-8=>GBK
import sys
print(sys.getdefaultencoding())
str = "s"                   #默認(rèn)是utf-8
str_gbk = str.encode("gbk")     #utf-8轉(zhuǎn)成gbk
print(str_gbk)
print(str.encode())
結(jié)果
utf-8
b'\xc4\xe3\xb9\xfe'
b'\xe4\xbd\xa0\xe5\x93\x88'

            
          
  1. s=“info:xiaoZhang 33 shandong”,用正則切分字符串輸出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]
            
              import re
list = []
s = "info:xiaoZhang 33 shandong"
for i in range(1,5):
    res = re.match('(\w+):(\w+)\s(\d+)\s(\w+)', s)
    ress = res.group(i)
    list.append(ress)
print(list)
結(jié)果['info', 'xiaoZhang', '33', 'shandong']
這里說一下group,他是單獨(dú)取正則表達(dá)式括號(hào)里的值,然后range是1-5,不是0-5,原因是group是1開始的,寫0-5會(huì)多加一個(gè)變量S
我寫的是參考答案

            
          

12. 已知 AList = [1,2,3,1,2],對(duì) AList 列表元素去重,寫出具體過程。

            
              不看過程寫法
AList = [1,2,3,1,2]
print(set(AList))
結(jié)果{1, 2, 3}      變成集合了

AList = [1,2,3,1,2]
BList = []
for i in AList:
    a1 = i
    if a1 not in BList:
        BList.append(a1)
print(BList)
結(jié)果[1, 2, 3]

            
          

13.如何實(shí)現(xiàn) “1,2,3” 變成 [“1”,“2”,“3”]

            
              a = list("1,2,3")
b = []
for i in range(3):
    b.append(a[i * 2])
print(b)
結(jié)果 ['1', '2', '3']

            
          

14. 給定兩個(gè) list,A 和 B,找出相同元素和不同元素

            
              A = [1, 6, 8, 9, "iii", 95]
B = [6, 85, 64]
C = []  不同值放這里
D = []  相同值放這里
for i in A:
    for m in B:
        if i == m:
            D.append(i)
print(D)
  結(jié)果  相同值  [6]
  
new_c = A+B
a = list(set(new_c))
for i in a:
    if i not in D:
        C.append(i)
print(C)
結(jié)果   不同值  [64, 1, 'iii', 8, 9, 85, 95]

            
          

15. [[1,2],[3,4],[5,6]]一行代碼展開該列表,得出[1,2,3,4,5,6]

            
              a = [[1,2],[3,4],[5,6]]
for x in a:
    for y in x:
        print(y)
  來大佬教一下,一行我也不會(huì),
  list = [lambda x,y:x for x in a for y in x]
  然后輸出結(jié)果是
  [
              
                
                  .
                  
                     at 0x0000020287E5CE18>, 
                    
                      
                        .
                        
                           at 0x0000020287E612F0>, 
                          
                            
                              .
                              
                                 at 0x0000020287E61378>, 
                                
                                  
                                    .
                                    
                                       at 0x0000020287E61400>, 
                                      
                                        
                                          .
                                          
                                             at 0x0000020287E61488>, 
                                            
                                              
                                                .
                                                
                                                   at 0x0000020287E61510>]
 怎么整啊求留言?。。。。。。。。。。。。?
                                                
                                              
                                            
                                          
                                        
                                      
                                    
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          

16. 合并列表[1,5,7,9]和[2,2,6,8]

            
              a = [1,5,7,9]
b = [2,2,6,8]
c = a+b
print(c)
結(jié)果   

              
                
[1, 5, 7, 9, 2, 2, 6, 8]


              
            
          

17. 如何打亂一個(gè)列表的元素?

            
              import random
x = [i for i in range(10)]
print(x)
random.shuffle(x)
print(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 2, 4, 7, 5, 8, 6, 1, 0, 3]
這個(gè)我也是百度的,知識(shí)盲區(qū),絕了

            
          

18. 字典操作中 del 和 pop 有什么區(qū)別
del刪除整個(gè)字典,變量都給你刪了
pop指定刪除給鍵的那個(gè)數(shù)據(jù)
a = {‘a(chǎn)’:‘1’,‘b’:‘2’}
print(a.pop(‘a(chǎn)’))
print(a)
結(jié)果
1
{‘b’: ‘2’}

del a
print(a)
結(jié)果直接報(bào)錯(cuò)說 a不是定義變量 NameError: name ‘a(chǎn)’ is not defined


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 通榆县| 宜丰县| 乾安县| 铁岭市| 锦州市| 东港市| 香河县| 民勤县| 延长县| 拜泉县| 安西县| 通城县| 东阿县| 介休市| 凭祥市| 榆树市| 那坡县| 垣曲县| 沁阳市| 余庆县| 敦化市| 黑水县| 东乌| 东港市| 商河县| 黄冈市| 清镇市| 黄梅县| 武平县| 沂水县| 苍梧县| 工布江达县| 济南市| 宁都县| 昌平区| 江孜县| 长葛市| 闻喜县| 云浮市| 宁河县| 保靖县|