面試題彙總(六)

一、列表推導式list1 = ["A", "B", "C"] list2 = ["X", "Y", "Z"]用列表推導實現輸出:['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

list1 = ["A",'B',"C"]
list2 = ['X','Y',"Z"]
list3 = [x+y for x in list1 for y in list2]
print(list3)

 

二、用lambda函數實現遞歸階乘

# 方法一
f = lambda n: f(n-1) * n if n >= 2 else 1
print(f(5))


# 方法二
from functools import reduce

res = reduce(lambda x, y: x * y, range(1, 6))
print(res)

 

三、給定一個排序數組和一個目標值,在數組中找到目標值,並返回其索引。若是目標值不存在於數組中,返回它將會被按順序插入的位置。例1:輸入:[1, 3, 5, 6], 5 輸出:2 例2:輸入:[1, 3, 5, 6], 2 輸出:1

def searchInsert(nums, target):
   for i in nums:
       if i>=target:
           return nums.index(i)
   if nums[0]>=target:
       return 0
   else:
       return len(nums)


list1 = [1, 3, 5, 6]
res = searchInsert(list1, 7)
print(res)

四、獲取某月日曆

import calendar

year = input("輸入年份:")
month = input("輸入月份:")
year = int(year)
month = int(month)
cal = calendar.month(year, month)
print("當前輸出月份:" + cal)

 

五、socket 模塊的 socket函數來建立一個 socket 對象

# 辛光華
import socket
socket.socket()


# 袁野
import socket

server = socket.socket()  # 建立一個socket對象
ip_port = ('0.0.0.0', 8001)  # 給出IP地址和端口號
server.bind(ip_port)  # 綁定IP和端口
server.listen(5)  # 監聽
conn, address = server.accept()  # 被動接收請求

while 1:
   content = input('服務端:')
   conn.send(content.encode('utf-8'))  # 發送信息
   from_client_msg = conn.recv(1024)  # 接收來自客戶端的信息
   from_client_msg = from_client_msg.decode('utf-8')  # 解碼來自客戶端的信息
   print('來自客戶端的信息:', from_client_msg)
   
   if from_client_msg == 'bye':  # 當客戶端的信息爲bye時結束聊天
       break

conn.close()  # 關閉通道
server.close()  # 關閉服務端

 

六、python多進程建立

from multiprocessing import Process

def foo(i):
   print ('say hi', i)

if __name__ == '__main__':
   for i in range(10):
       p = Process(target=foo, args=(i,))
       p.start()

 

七、參考下面代碼片斷 class Context: TODO pass with Context() as ctx: ctx.do_something() 請在 Context 類下添加代碼完成該類的實現。

class Sample:
   def __enter__(self):
       return self

   def __exit__(self, type, value, trace):
       print("type:", type)
       print("value:", value)
       print("trace:", trace)
       print(sample)


   def do_something(self):
       bar = 1
       return bar + 10

with Sample() as sample:
   sample.do_something()
相關文章
相關標籤/搜索