0.Python面试题
1、字符串型的列表如何转换成列表?如“[1,2,3]”转换成[1,2,3]。
eval('[1,2,3,4]') —> [1, 2, 3, 4]
2. Python如何判断两个列表的相同元素?(除了遍历以外?)
列表推导
list1 = [1,3,65,2,7]
list2 = [3,2,5,4]
c = [x for x in list1 if x in list2]
d = [y for y in (list1+list2) if y not in c]
print(c)
print(d)
for循环
list1 = [1,3,65,2,7]
list2 = [3,2,5,4]
list3 = []
list4 = []
for i in list1:
for j in list2:
if i == j:
list3.append(i)
for b in (list1 + list2):
if b not in list3:
list4.append(b)
print(list3)
print(list4)
3、Python如何读取文件?如何读取指定的字符长度?
https://www.cnblogs.com/huilixieqi/p/6494891.html
文件读写
f = open('song.txt', 'r', encoding='utf-8') # 第二步:读取文件内容
print(f.read()) # 第三步:关闭文件
f.close()
读取指定长度的内容
with open('song.txt', 'r', encoding='utf-8') as f:
print(f.read(12))
4、通过Python如何知道某个文件在哪个位置?
import os.path
os.path.basename(文件路径) 获取文件名
os.path.dirname(文件路径) 获取目录
os.path.abspath(filename) 得到的就是文件名的绝对地址
os.path.abspath(os.path.dirname(filename)) 得到绝对目录
5、Python脚本如何在文件中间上传下载文件?(不是执行前也不是执行完再下载)
方法一:
import urllib
import urllib2
import requests
print "downloading with urllib"
url = '//www.jb51.net//test/demo.zip'
print "downloading with urllib"
urllib.urlretrieve(url, "demo.zip")
方法二:
import urllib2
print "downloading with urllib2"
url = '//www.jb51.net//test/demo.zip'
f = urllib2.urlopen(url)
data = f.read()
with open("demo2.zip", "wb") as code:
code.write(data)
方法三:
import requests
print "downloading with requests"
url = '//www.jb51.net/test/demo.zip'
r = requests.get(url)
with open("demo3.zip", "wb") as code:
code.write(r.content)
看起来使用urllib最为简单,一句语句即可。当然你可以把urllib2缩写成:
f = urllib2.urlopen(url)
with open("demo2.zip", "wb") as code:
code.write(f.read())
6、Python脚本可以通过命令传递一些参数,如果在文件之外要怎么传递参数?
运行python脚本时需要传入一些参数
python script.py 0,1,2 10
python script.py -gpus=0,1,2 --batch-size=10
python script.py -gpus=0,1,2 --batch_size=10
7、Linux如何判断一个文件存在不存在?(除find外)
#文件夹不存在则创建
if [ ! -d "/data/" ];then
mkdir /data
else
echo "文件夹已经存在"
fi
#文件存在则删除
if [ ! -f "/data/filename" ];then
echo "文件不存在"
else
rm -f /data/filename
fi
#判断文件夹是否存在
if [ -d "/data/" ];then
echo "文件夹存在"
else
echo "文件夹不存在"
fi
#判断文件是否存在
if [ -f "/data/filename" ];then
echo "文件存在"
else
echo "文件不存在"
fi
8、Linux下,vim一个文件,如何将文件中所有的123替换成456?
(1) 文件内全局替换
:%s/123/456/g
这句话的意思是,文件下得所有123 字符,全部替换为 456,当然也可以用正则匹配比如
:%s/*.abc/*.def/g
(2) 文件内局部替换
:20,30s/123/456/g
把20-30行的 123替换为 456
9、Xpath如何定位到当前节点之前的所有同级节点?
XPath轴(XPath Axes)可定义某个相对于当前节点的节点集:
1.child 选取当前节点的所有子元素
2.parent 选取当前节点的父节点
3.descendant 选取当前节点的所有后代元素(子、孙等)
4.ancestor 选取当前节点的所有先辈(父、祖父等)
5.descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身ancestor-or-self 选取当前节点的所有先辈(父、祖父等)
以及当前节点本身preceding-sibling 选取当前节点之前的所有同级节点
6.following-sibling 选取当前节点之后的所有同级节点
7.preceding 选取文档中当前节点的开始标签之前的所有节点
8.following 选取文档中当前节点的结束标签之后的所有节点
9.self 选取当前节点
attribute 选取当前节点的所有属性
10.namespace 选取当前节点的所有命名空间节点
要定位当前td同级后的一个td
//td[.=‘text‘]/following-sibling::td
路径表达式 结果
1./bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。
2./bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。
3./bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。
4./bookstore/book[position()<3] 选取最前面的两个属于bookstore元素的子元素的 book 元素。
5.//title[@lang] 选取所有拥有名为 lang 的属性的 title 元素。
6.//title[@lang='eng'] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
7./bookstore/book[price>35.00] 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。
8./bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。
10、Django中间件的作用?
https://www.jb51.net/article/136422.htm
11、Django和flash的区别?
https://blog.csdn.net/Canjiuhenqiang/article/details/95615127

浙公网安备 33010602011771号