一輪面試題:
python相關
1,*args和**kwarg有什么用?
如果我們不確定要往函數中傳入多少個參數,或者我們想往函數中以列表和元組的形式傳參數時,那就使要用*args;
如果我們不知道要往函數中傳入多少個關鍵詞參數,或者想傳入字典的值作為關鍵詞參數時,那就要使用**kwargs;
當我們混合使用這三個參數時,必須遵循arg,*args,**kwargs這樣的順序,否則程序會報錯
2,[1,2,3]+[4,5,6]
[1,2,3,4,5,6]
3,給你一個字符串 abcde,倒序輸出 edcba,怎么寫
a=’abcde’ b=a[::-1]
4,取出100以內不能被3整除的數
a = [i for i in range(100)]
b = a[:]
for n in a:
if n % 3 == 0:
b.remove(n)
print(b)
5,取出郵箱地址@以前的部分,然后把數字刪掉
def remove(a):
b = []
for i in a:
if i not in "0123456789":
b.append(i)
return ("".join(b))
print(remove('asdf234dsfg2345dfgf@#!#@'))
6,裝飾器有什么作用?能寫一個嗎?
7,xxa!!@abc989HHaabbcc@abcccbac
把里面b左邊緊緊相鄰的a刪掉,輸出結果
m = 'xxa!!@abc989HHaabbcc@abcccbac'
while 'ab' in m:
m = m.replace('ab', 'b')
if 'ab' not in m:
break
print(m)
8,給你一個任意數,判斷該數是不是7的N次方
比如 2348923499
def isPowerOfThree(n):
if n == 1:
return True
if (n >1 and n <= 6) or n==0:
return False
while n != 1:
if n % 7 == 0:
n = n / 7
else:
return False
return True
print(isPowerOfThree(2))
9,一個五位數,ABCDE,乘以9,等於EDCBA
求這個五位數
for a in range(10):
for b in range(10):
for c in range(10):
for d in range(10):
for e in range(10):
if (((10000 * a + 1000 * b + 100 * c + 10 * d + e) * 9) == (
10000 * e + 1000 * d + 100 * c + 10 * b + a)) and (a * e != 0):
print(a, b, c, d, e)
linux相關
1,linux的host文件路徑在哪里,有什么作用?
Linux系統位置
/etc/hosts
作用:
hosts就相當於本地的一個dns緩存
可以用來屏蔽任何網站
ip地址+空格+域名+#解析+回車”
2,echo ‘abcde’ >> tmp.txt 和 echo ‘abcde’ >tmp.txt 是做什么的?
文件不存在時,兩個命令都會新建文件
echo ‘abcde’ >> tmp.txt 在文件中追加內容
echo ‘abcde’ >tmp.txt 清空原來的內容,填入新的內容
3,linux系統非常卡頓,如何定位分析? free、top、ps -aux ?
查看系統性能情況
free top ps df du
du -sh 目錄 查看指定目錄的使用情況
4,crontab 命令的用途是? crontab -l?
crontab 和定時任務相關的命令
crontab -l 查看當前的定時任務設置
5,如何查看硬盤用量?如何查看某個文件夾的容量?
df -h
du -sh 目錄 查看指定目錄的使用情況
6,在/tmp目錄下,尋找一個叫abc.log的文件,用什么命令?
find /tmp -name abc.log
7,vim和vi,按什么鍵可以回到文本的第一行和最后一行
vi 編輯器中跳到文件的第一行:鍵盤按下 小寫 gg
vi 編輯器跳到文件最后一行:鍵盤按下大寫 G