1. 写出如下代码的输出结果:
a = 1
def fun(a):
a=2
fun(a)
print(a) # 输出____
a = []
def fun(a):
a.append(1)
fun(a)
fun(a)
print(a) # 输出____
def fun(a=[]):
a.append(1)
print(a)
fun()
fun() # 输出____
输出:
- 1
- [1,1]
- [1] [1,1]
2. Python中如何声明静态方法和类方法?
class Lei(object):
# 静态方法
@staticemethod
def statice_def():
pass
# 类方法
@classmethod
def class_def(cls):
pass
3. 阅读如下代码,写出输出结果:
class A(object):
def a(self):
print("A.a()")
class B(object):
def a(self):
print("B.a()")
class C(A, B):
def a(self):
super().a()
print("C.a()")
class D(C,B):
pass
c1=C()
c1.a() # 输出____
d1=D()
d1.a() # 输出____
输出:
- A.a() C.a()
- A.a() C.a()
4. 使用生成器实现输出斐波那契数列(F0=0, F1=1, Fn=Fn-1+Fn-2(n>=2, n∈N*))
# 方式一:
def gibonacci(n):
forward = 0
backward = 1
con = 1
while con <= n:
if con == 1:
yield forward
elif con == 2:
yield backward
else:
yield forward + backward
forward, backward = backward, forward + backward
con += 1
g_iter = gibonacci(10)
print(list(g_iter))
# 方式二:
def gibonacci(n):
a, b, count = 0, 1, 0
while True:
if count > n-1:
return
yield a
a, b = b, a+b
count += 1
print(list(gibonacci(2)))
5. 实现如下两个装饰器,使得函数say()
能返回“<b><i>Hello</i></b>”
:
@makestyle1
@makestyle2
def say():
return 'Hello'
答:
# 装饰器1
def makestyle1(func):
def inner():
return "<b>" + func() + "</b>"
return inner
# 装饰器2
def makestyle2(func):
def inner():
return "<i>" + func() + "</i>"
return inner
6. Django
6.1 python manage.py makemirations
和python manage.py magrate
命令的作用:
答:生成数据库迁移文件和 执行数据库迁移文件
6.2 开发项目时启动命令:
答:python manage.py runserver [IP:Port]
([]
中的内容若省略,默认127.0.0.1:8000)
6.3 django-admin makemessages -l zh_CN
命令的作用:
答:项目的 国际化与 本地化。
7. Django
class Animal(models.Model):
name = models.CharField(max_length=50, blank=True, null=True)
age = models.PositiveIntegerField()
7.1 补全如下代码,使得ORM
系统不创建实际的Animal
数据表;
class Meta:
# ________
答:abstract = True
7.2 name
字段中null=True
和blank=True
的区别:
答:
null
是数据库范畴的概念,表示字段允许为空;blank
是表单范畴的概念,表示字段允许空白;
8. 写出如下要求的ORM语句:
class User(models.Model):
name = models.CharField(max_length=50, blank=True, null=True)
age = models.PositiveIntegerField()
status = models.IntegerField(choices=((0,"儿童"), (1,"少年"), (2,"青年"), (3,"中年"), (4,"老年")))
8.1 查询age大于等于10的所有User记录:
User.objects.filter(age__gte=10)
8.2 查询name字段包含“abc”的所有user记录:
User.objects.filter(name__contains='abc')
8.3 查询status为“儿童”或“老年”的user记录:
User.objects.filter(Q(status=0) | Q(status=4))
8.4 将age小于10的所有记录的status字段设置为儿童:
User.objects.filter(age__lt=10).updtate(status=0)
9. 给定1个5升的被子和1个3升的被子,如何取出1升水?
答:将3升的杯子装满,向5升的杯子倒,反复2次,当5升的杯子满了,3升的杯子还剩1升水。
10. 实现二分查找:
# 方式一:非递归
def binary_search(my_list, item):
start = 0
end = len(my_list)-1
while start < end:
mid = (start+end)/2
if item == my_list[mid]:
return True
elif item < mylist[mid]:
end = mid - 1
else:
start = mid + 1
return False
# 方式二:递归
def binary_search(my_list, item):
n = len(my_list)
if n==0:
return False
mid = n / 2
if item == my_list[mid]:
return True
elif item < my_list[mid]:
binary_search(my_list[:mid], item)
else:
binary_search(my_list[mid+1:], item)
11. 给出如下HTML
代码,请用CSS
代码隐藏掉“Meta Store
”所在的div
<ul>
<li>
<a href="#/main/services/HDFS/summary">
<div class="icon-health-block">NameNode</div>
</a>
</li>
<li>
<a href="#/main/services/HDFS/summary">
<div class="icon-health-block">Meta Stotre</div>
</a>
</li>
<li>
<a href="#/main/services/HDFS/summary">
<div class="icon-health-block">Region Server</div>
</a>
</li>
</ul>
答:CSS
选择器分为:标签选择器、ID
选择器、类选择器、层级选择器、组选择器、伪类选择器
选择好后,新增css
属性如下,具体怎么选择不会。
{
display:none
}
12. JS如何获取当前访问页面的url?
var urls = window.location.href;
13. v-if和v-show的异同点:
- 相同点:用法虽然基本一致,都是通过条件指令可以控制元素的创建(显示)或者销毁(隐藏)。
- 不同点:
v-show
不支持v-else
,而且不论元素显示还是隐藏,元素都是一直存在的。v-show
只编译一次,后面其实就是控制css
,而v-if
不停的销毁和创建,故v-show
性能更好。
14. 处理事件监听可以使用哪个指令?
v-on:事件='函数名'
或 @:事件='函数名'
15. 写出如下Liunx
系统命令
15.1 查看当前所在目录
pwd
15.2 列出当前路径下的所有文件及路径的详细信息
ls -al
15.3 删除当前路径下的“a.txt”文件
rm a.txt
15.4 创建文件目录“a/b/c”
mkdir -p a/b/c
15.5 创建一个指向当前路径下文件“file1”的软连接“Ink1”:
ln -s file1 lnk1
总体来说面试题很简单
但是,面试官的所有问题都是围绕项目展开的,但是自己根本就没有准备项目的介绍,所以被问得无地自容,不得不把后边的面试都推了,重新准备。