linux类
1.文件上传的命令?
scp -r username@ip:port/服务器路径 /本地路径
scp -r /本地路径 username@ip:port/服务器路径
左传右
2.查看日志前5行和最后5行的命令
tail -fn 5 /日志路径 -n表示仅展示最新的x行
python类(面向python3.X的回答)
1.is和==的区别?(回答比较粗暴,建议具体百度,原理还是很重要的)
e.g.:a={1} b={1}
e.g.:c=1 d=1
==:值的比较,a==b
is:对于int/sring来说,与==作用相似
对于list/dict/tuple/set类型来说,a is not b,c is d
2.写一个斐波那契数列递归(我用了最原始的方法,但是不符合递归的题意。)
我的回答:
def fib(n):
a = 0
b = 1
for i in range(n):
a, b = b, a+b
print(a)
3.写一个99乘法表(就两个for循环)
for i in range(1,10):
for j in range(1,i+1):
print(str(i) + "*" + str(j) + "=" + str(i*j))
4.迭代器和生成器
迭代器:一个可以记住遍历位置的对象
a = iter(list)
next(a)
a = iter(list)
for x in a:
print(a)
生成器:使用了 yield 的函数被称为生成器?
网上抄的斐波那契数列,使用了生成器和迭代器
def fibonacci(n):
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10)
我表示没看懂(为什么没看懂,因为不了解yield的用法,可以延伸一下)
这篇讲的比较详细
https://www.cnblogs.com/wj-1314/p/8490822.html(标题:python 生成器和迭代器有这篇就够了)
Q2:既然生成器和迭代器都能迭代,那他们之间的区别是什么呢?
1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身。对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数,iter()是Python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内元素,next()也是Python的内置函数。在没有后续元素时,next()会抛出一个StopIteration异常
2)生成器(Generator)是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,只是在需要返回数据的时候使用yield语句。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)
区别:生成器能做到迭代器能做的所有事,而且因为自动创建了__iter__()和next()方法,生成器显得特别简洁,而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序状态的自动方法,当发生器终结时,还会自动抛出StopIteration异常
个人理解:
生成器是特殊的迭代器
迭代器是具体的;生成器能生成超出内存限制的迭代器(有错误的话,请多多指教)
5.装饰器是什么
https://www.cnblogs.com/whyaza/p/9505205.html
能把其他方法做成输入值的方法
用@来描述装饰器
6.元组和列表的区别
列表可以修改,而元组不行
元祖:小括号
列表:中括号
字典:大括号
数据库类
1.取每门课中最高的一个人(没怎么用过max函数,之前也被问过sum的用法,其实都是基础不扎实留下的坑)
select max(grade) from t_1 group by class
总结
基础基础基础基础基础基础基础基础基础基础基础基础基础基础基础基础基础基础
不扎实不扎实不扎实不扎实不扎实不扎实不扎实不扎实不扎实不扎实不扎实不扎实