- Python的基本数据类型有哪些?
1.字符串(String) 2.集合(set) 3.元组(Tuple) 4.列表(List) 5.字典(Dictionary) 6.数字(Number)
其中不可变的数据类型:字符串、元组、数字。不可变类型指的是在重新赋值的时候重新创建一个不可变类型,并将原来的变量指向新的内存空间,而原来的不可变类型则会 被内存回收站收回。
可变数据类型:列表、字典、集合
- 字符串都有哪些常用的方法?
字符串的拼接: "abc"+"cd"
字符串的格式化:
1."%s"%var 字符串 %d 整数 %f 浮点数
2."{0}{1}".format(name,age) 括号中的数字按照使用的顺序写好
字符串的截取:str.strip("|") 返回截取后的字符串
字符串的分割: str.split(‘ ’) 分割字符串中的空格返回列表
- 列表都有哪些常用的方法 ?
alist = [‘x’,'y','z']
增加:alist.insert(index,'a')第一个参数是 插入的下标,第二个参数是要插入的元素
alist.appent() 列表追加 ; alist.extend(a)列表的合并
删除 :alist.remove('x') 删除列表中x 的元素
修改:alist[0] = 'h'
查询: alist[0]
- 列表的切片和列表表达式?
alist[0:2,1] 第一个参数表示列表的起始下标,第二个参数表示列表的截止下标。第三个参数表示每次切的步长。
a = eval("['a','b']") # 将字符串当表达式求值,得到列表
- 元组有哪些方法?
元组元素不可变,只有count和index两个方法
atuple = (1,2,3,4)
atuple.index(2) 返回元素2 的下标
atuple.count(2) 返回元素2 在元组中共有几个
del atuple 删除atuple元组的内存地址和变量的指向
- 元组和列表的区别?
1.元组由小括号组成,列表由中括号组成
2.元组的元素不可变,而列表的元素可以被修改。这就导致了元组的方法只能查询和删除
- 字典都有哪些方法 ?
tmp_dict= {'age':18,'name':'Jack'} a = {'age':18,'school':'xian'}
字典由 一对大括号组成,是可变的数据类型
增加: tmp_dict['school']='清华' ;tmp_dict().update(a) 两个字典合并,且会将重复的元素去掉
删除: tmp_dict.clear() 删除全部字典 ;tmp_dict.pop('school') 删除指定key,并返回对应的value 值。
修改:修改和增加类似tmp_dict['school']='北大'
查询:tmp_dict.keys() 查询字典中所有的key值并返回一个列表。
tmp_dict.values() 查询字典中所有的值并返回一个列表。
tmp_dict.has_key(key) 判断key是否存在,存在为True,否则为False.
tmp_dict.get(key,None) 获取字典中的value值,如果不存在则默认置为None。
tmp_dict.setdefault(key,default=None) 和set()方法相似,如果不存在key,由tmp_dict[key]=default赋值
字典和json字符串的转换
import json json.dumps(tmp_dict) json,load(str)
- Python中的深拷贝 和 浅拷贝分别是 什么?
import copy
a = [1,2,4,5]
b = copy.copy(a) 浅拷贝只是内存地址的拷贝,另外一个变量改变的时候也会引起当前变量的变化
c=copy.deepcopy(a) 深拷贝是在内存地址中新开辟 一个内存空间,仅仅是值相同而已,且改变另外一个对象该对象不会发生变化。
- Python都有哪些 常见的异常和错误?
indexerror 列表中常见; valueerror和keyerror 字典中比较常见 nameerror Typeerror
standarderror标准错误如果不知道捕获错误就使用standarderror。
- Python中常用的模块和方法?
内置模块: os,sys,time,shutil,glob,random,json,math,gzip,uuid,copy,multiprocessing,requests,threading,re
第三方模块: xlwt,xlrd,scapy,numpy
- Python中静态方法和类方法分别是什么有什么区别?
- Python中线程怎么创建和使用?
import threading
thread = threading.Thread(target=func)
thread.start()
线程池的创建和使用:
create_pool = ThreadPool(len(vendors))
create_pool.apply_async() create_pool.close() create_pool.close()
- Python中的进程怎么创建和如何使用,子进程的使用方法?
- Python中的协程是什么?和多线程多进程有什么区别?
- Python中正则表达式怎么使用?有哪些常用的方法 ?
http://funhacks.net/2016/12/27/regular_expression/
\d 数字 \D 非数字 \s 空白字符 \S非空白字符 \w 单词字符 \W 非单词字符
[… ] 匹配字符集 \表示转义字符 .匹配任意字符(换行符除外)+表示至少匹配一次 *表示匹配任意多次包括0次
import re
pattern = re.compile (r'\d+') 函数用于编译正则表达式,生成一个pattern对象
pattern.match('123456')
- Python中的闭包是什么?如何理解装饰器?
- Mysql的分页查询offset? 数据库MySQL分页查询思路
{
"page":1,
"pageSize":10,
"searchCommonType":"exec_task_name",
"searchContent":"dns",
"searchTestScene":"basic_performance_assessment",
"searchStatus":"ALL",
"taskType":"single"
}
1.前台传入不同的标志参数,根据不同的参数来查询数据库
2.根据筛选条件查询数据库;如果有输入查询的内容则进行模糊查询like();对查出来的数据进行降序排序order_by(CaseExecTask.exec_begin_time.desc());
设置最大数目limit(page_size);偏移量offset((args['page']-1)*args['page_size'])。并计算查询出来的数量count
SELECT * FROM seckill LIMIT 2 OFFSET 1;
SELECT * FROM seckill LIMIT 2,1;
前者表示跳过一条数据,读取两条数据
后者表示跳过两条数据,读取一条数据
3.返回给前台查询结果的数量;页数大小默认是10;通过查询结果的数量和页数大小来计算多少页(page)
4.遍历查询到的结果返回给前台(注意开始时间和结束时间有可能为空)
- MySql的事件都有哪些?
- ORM?
- Redis?
https://www.jianshu.com/p/2639549bedc8
https://blog.csdn.net/middleware2018/article/details/80355418
字符串的设置: redis.set(name=key,value=str)
字符串的查询: redis.get(key)
字典hash的设置:redis.hset(name,key, value)
字典hash的查询:redis.hget(name,key)
- Linux都有哪些常用的命令?
ls pwd echo tailf screen scp cp mv awk sed cut find ps vi
scp -r [email protected]:root/CloudExploreOrm D:\work
- Python的框架Flask一般都用过哪些?
- 实际项目中遇到什么问题,是如何处理的?