~欢迎进来我的博客~蛋叔的小乖乖~

面试题总结

一.python如何判断数据类型:

1、isinstance(参数1,参数2)

描述:该函数用来判断一个变量(参数1)是否是已知的变量类型(参数2) 类似于type()

参数1:变量

参数2:可以是直接或间接类名、基本类型或者由它们组成的元组。

返回值: 如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False

if isinstance(variate,int):
   type = "int"
2、通过与已知类型的常量进行比较
if type(variate) == type(1):
          type1 = "int"
      elif type(variate) == type("str"):
          type1 = "str"
      elif type(variate) == type(12.3):
         type1 = "float"
     elif type(variate) == type([1]):
         type1 = "list"
3.补充:
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。

二.request 库包含哪些类型:

1.requests.request(method,url,**kwargs)

method:请求的方式,可以选择get、head、post等方法

url:表示获取的链接地址

**kwargs:控制参数,13个

(1)params:字典或者字节序列,作为参数添加到url中

import requests kv = {'key1':'value1','key2':'value2'}

r2 = requests.request('GET','http://httpbin.org/get',params = kv)

print(r2.url)

>>>http://httpbin.org/get?key2=value2&key1=value1

 

(2)data : 字典、字节序列或者文件对象,作为Request中的内容

你想要发送一些编码为表单形式的数据,只需要传递一个字典给data,你的数据字典字典会自动编码为表单形式

import requests
r = requests.request('POST','http://httpbin.org')
print(r.text)

kv = {'key':'value'}
r1 = requests.request('POST','http://httpbin.org',data = kv)
print(r1.text)

你还可以为data参数传入一个元组列表,在表单中多个元素使用同一key时,这种方式尤其有效。

>>> payload = (('key1', 'value1'), ('key1', 'value2'))
>>> r = requests.post('http://httpbin.org/post', data=payload)
>>> print(r.text)

(3)json : JSON格式的数据,作为Request中的内容

kv = {'key1': 'value1'}

r = requests.request('POST', 'http://python123.io/ws', json=kv)

(4)headers : 字典、Http定制头

hd = {'user‐agent': 'Chrome/10'}

r = requests.request('GET', 'http://python123.io/ws', headers=hd)

(5)cookies : 字典或CookieJar,Request中的cookie

(6)auth : 元组,支持http认证功能

(7)files : 字典类型,传输文件

(8)timeout: 设定超时时间,以秒为单位

r = requests.request('GET', 'http://python123.io/ws', timeout = 10)

(9)proxies : 字典类型,设定访问代理服务其,可以增加登陆认证

pxs = { 'http': 'http://user:pass@10.10.10.1:1234' 'https': 'https://10.10.10.1:4321' }

r = requests.request('GET', 'http://www.baidu.com', proxies=pxs)

(10)allow_redirects : True/False,默认为True,重定向开关

(11)stream : True/False,默认为True,获取内容立即下载开关

(12)verify : True/False,默认为True,认证SSL证书开关

(13)cert : 本地SSL证书路径

2.requests.get(url,params=None,**kwargs)

url :获取的链接

params :与request方法中的params一致

**kwargs : 12个可选参数

3.requests.head(url,**kwargs)

**kwargs : 12个控制访问参数

4.requests.post(url,data = None,json = None,**kwargs)

**kwargs:12个控制访问参数

5.requests.put(url, data=None, **kwargs)

**kwargs: 12个控制访问的参数

6.requests.patch(url, data=None, **kwargs)

**kwargs: 12个控制访问的参数

7.requests.delete(url, **kwargs)

 

三.正索引和负索引

1.正索引:

sequence[starting_index:ending_index]
如此,我们会得到从starting_index对应元素开始,到ending_index对应元素结束,但是不包括ending_index对应元素,所组成的子序列的内容。起止索引都是可选的选项,如果没有提供或者为None,那么开始索引默认为0,结束索引默认为序列最末尾的索引。切片的访问模式,有第三个值,类似于步长,其访问类似下面代码
>>> ('a','b','c','d')[0]
'a'
>>> ('a','b','c','d')[1]
'b'
>>> ('a','b','c','d')[0:3:2]
('a', 'c')

2.负索引:

>>> ('a','b','c','d')[-4]
'a'
>>> ('a','b','c','d')[-4:4]
('a', 'b', 'c', 'd')
>>> ('a','b','c','d')[-4:0]
()
>>> ('a','b','c','d')[-4:1]
('a',)
>>> ('a','b','c','d')[-4:2]
('a', 'b')

四.Linux查看进程命令都有哪些?

1.ps命令是一个相当强大地Linux进程查看命令.运用该命令可以确定有哪些进程正在运行和运行地状态、 进程是否结束、进程有没有僵死、哪些进程占用了过多地资源等等.总之大部分信息均为可以通过执行该命令得到地。

PS命令语法:

ps [选项]

-e 显示所有进程,环境变量

-f 全格式

-h 不显示标题

-l 长格式

-w 宽输出

-a 显示终端上地所有进程,包括其他用户地进程

-r 只显示正在运行地进程

-x 显示没有控制终端地进程

PS命令使用:

ps命令用于查看当前正在运行的进程,最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,再对特定的进程进行操作,其中grep起到搜索作用。

例如:

ps -ef | grep java

表示查看所有进程里 CMD 是 java 的进程信息

ps -aux | grep java

-aux 显示所有状态

通常用 ps 查看进程 PID ,用 kill 命令终止进程,如:

例如:kill -9 [PID]

-9 表示强迫进程立即停止

2.Linux查看进程命令:Top命令

top命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。

3.Linux查看进程命令:Pstree命令

pstree命令以树状图的方式展现进程之间的派生关系,显示效果比较直观。

Pstree命令语法:

pstree(选项)

-a 显示完整命令及参数 -c 重复进程分别显示 -c 显示进程ID、PID -n 按 PID排列进程

Linux查看进程命令:Pgrep命令

pgrep命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。

Pgrep命令语法:

pgrep(选项)(参数)

-l 显示进程名和进程PID

-o 进程起始ID

-n 进程终止ID

 

五.查看日志的五种命令是什么?

1.tail命令 - 实时监控日志

tail命令是实时显示日志文件的最常用解决方案。但是,显示该文件的命令有两个版本,一种是命令tail需要-f参数来跟踪文件的内容,另一种就只需要命令本身tail。

(1)$ sudo tail -f /var/log/apache2/access.log

(2)$ sudo tailf /var/log/apache2/access.log

默认情况下,tail命令将显示文件的最后10行

如果你只想实时查看日志文件的最后两行,请使用-n与该-f标志结合的文件,如下例所示。

(3)$ sudo tail -n2 -f /var/log/apache2/access.log

2.multitail命令 - 实时监控多个日志文件

要在基于Debian和RedHat的系统中安装mulitail实用程序,请发出以下命令。

$ sudo apt install multitail [On Debian&Ubuntu]

$ sudo yum install multitail [On RedHat&CentOS]

$ sudo dnf install multitail [On Fedora 22+ version]

multitail实用程序可以实时监视和跟踪多个文件。Multitail还允许你在受监视的文件中来回导航。多点监控日志

$ sudo multitail /var/log/apache2/access.log /var/log/apache2/error.log

3. lnav命令 - 实时监控多个日志文件

Lnav实用程序还可以观看和跟踪多个文件并实时显示其内容

通过发出以下命令在基于Debian和RedHat的Linux发行版中安装lnav实用程序。

$ sudo apt install lnav [On Debian&Ubuntu]

$ sudo yum install lnav [On RedHat&CentOS]

$ sudo dnf install lnav [On Fedora 22+ version]

通过发出命令同时观察两个日志文件的内容

$ sudo lnav /var/log/apache2/access.log /var/log/apache2/error.log

4. less命令 - 显示日志文件的实时输出

如果键入,则可以使用less命令显示文件的实时输出Shift+F

$ sudo less + F /var/log/apache2/access.log

六.Linux如何启动Tomcat

首先,进入Tomcat下的bin目录

cd /usr/local/tomcat/bin

使用./shutdown.sh或者是sh shutdown.sh关闭Tomcat

使用./startup.sh或者是sh startup.sh启动Tomcat

查看Tomcat是否以关闭

ps -ef|grep java

如果出现以下信息说明已经关掉了

 想直接直接杀死Tomcat进程(进程号: 7010),使用kill命令

kill -9 7010

七、性能测试怎么进行的?

八、MySQL查询姓张的分大于80的人总数

九、.根据编号排序

十、冒泡排序:也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。

 

 

十一、.给你一个字符串,aaaabbbbbcc输出结果:a4 b5 c2

十二、.python中哪些变量是可变的,哪些是不可变的

 可变数据类型:列表list和字典dict。

不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。
posted @ 2020-03-13 18:34  qq的天马行空  阅读(194)  评论(0)    收藏  举报
蛋叔的小乖乖