2.16

Posted A-a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.16相关的知识,希望对你有一定的参考价值。

1.简要描述GIL对Python性能的影响

#GIL本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行,
# 以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全。有了GIL的存在,同一时刻同一进程中只有一个线程被执行
#但是对于计算来说cpu越多越好,由于GPL的存在,我们无法利用多核优势,对于计算来说GPL存在影响了一定的性能
#但是我们大多数情况下都是I/O比较多,对于I/O来说再多的CPU有没有用,所以在I/O比较多的情况下,GPL对Python的性能影响较小

2.Python斐波那契数列1,2,3,5,8,13,21......根据这样的规律,编程求出400万以内的最大斐波那契数列?

def fib_n(n):
    a, b = 0, 1
    result = []
    for i in range(n):
        result.append(b)
        a, b = b, a+b
    return result
res=fib_n(40000000)
print(res)

3.要求一段代码,实现两个字典相加,不同的key对应的值保留,相同的key对应的值相加后保留,如果是字符串就拼接

a={\'a\':1,\'b\':2,\'c\':3,\'d\':4,\'f\':\'hello\'}
b={\'b\':3,\'d\':5,\'e\':7,\'m\':8,\'m\':\'word\'}
#要求一段代码,实现两个字典相加,不同的key对应的值保留,相同的key对应的值相加后保留,如果是字符串就拼接
for k in  a:
   if k in b:
       b[k]=a[k]+b[k]
   else:
       b[k]=a[k]
print(b)

4.从输入一个url到展示页面经历了什么

1、输入地址
2、浏览器查找域名的 IP 地址  
3、浏览器向 web 服务器发送一个 HTTP 请求
4、服务器的永久重定向响应
5、浏览器跟踪重定向地址
6、服务器处理请求
7、服务器返回一个 HTTP 响应 
8、浏览器显示 html
9、浏览器发送请求获取嵌入在 HTML 中的资源(如图片、音频、视频、CSS、JS等等)

5.http状态码有什么用,列出 你知道的状态码,然后都讲出他们表示什么意思?

http://tool.oschina.net/commons?type=5

6.python主要数据类型有哪些,那些是可变的,那些是不可变的?

#数字  不可变类型
#字符串  不可变类型
#列表   可变类型
#元祖  不可变类型
#字典   可变类型
#集合   可变类型

7.什么是可变数据类型,什么是不可变数据类型?

可变类型:在id不变的情况下,value可以变
#在Python中如何抛出,捕获、处理异常
可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间) 

8.在Python中如何抛出,捕获、处理异常

#raise关键字:手动抛出一个通用的异常类型(Exception)
#捕获异常try..except..else

9.详细说说list,tuple,dict,的用法,特点

#1.list,有序 可变数据类型
# 切片,
# 追加 append,
# 删除 pop , remove ,
# 长度 len,
# 包含 in,
# 插入 insert
# 列表链接 extend
# 清空 clear
# 赋值 copy
# 倒置 reverse

#tuple 不可变数据类型 可做字典的key 有序
#方法和list差不多

#字典 无序 可变数据类型
#取 dic[\'a\']=aa   get
#pop:key存在则弹出值,不存在则返回默认值,如果没有默认值则报错
#删除  pop() popitem()
## print(info_dic.keys())
# print(info_dic.values())
# print(info_dic.items())
#长度 len
#包含 in
#update 有就更新 没有就添加
#setdefault:key不存在则设置默认值,并且放回值默认值
#fromkeys
#  d=info_dic.fromkeys((\'name\',\'age\',\'sex\'),None)
# print(d)
# d1=dict.fromkeys((\'name\',\'age\',\'sex\'),None)
# d2=dict.fromkeys((\'name\',\'age\',\'sex\'),(\'egon\',18,\'male\'))
# print(d1)
# print(d2)

10.python是如何进行内存管理的?

https://www.cnblogs.com/wangyuhangboke/p/7802253.html

python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。

11.python的程序会内存泄露吗?说一说怎么方面阻止或检测内存泄露?

http://www.jb51.net/article/64745.htm

12 关于Python程序的运行性能方面,有什么手段能提升性能?

#1.让关键代码依赖于外部包
#2.排序时使用键(key)
#3.优化循环
#4.使用较新版本的Python
#5.尝试多种编码方法
#6.交叉编译应用程序

http://www.jb51.net/article/63166.htm

13.简单实现一个stack

#堆栈:先进后出,后进先出
# l=[]
# #入栈
# l.append(\'first\')
# l.append(\'second\')
# l.append(\'third\')
# #出栈
# print(l)
# print(l.pop())
# print(l.pop())
# print(l.pop())

14.输入某年某月某日判断这一天是这一年的第几天

year=int(input(\'请输入年:\'))
month=int(input(\'请输入月:\'))
day=int(input(\'请输入天:\'))
sum=day
days = [31,28,31,30,31,30,31,31,30,31,30,31]
i=0
if ( year%4 == 0 and year%100 != 0) or (year%400 == 0):
  days[1] = 29
while i< month-1:
  sum=sum+days[i]
  i+=1
print(\'这一天是该年的第\',sum,\'\')

15.如何删除一个list中的元素,如何删除dict中的一对kv

a=[1,2,3,4,5]
# a.pop(1)
# print(a)

# a.remove(3)
# print(a)
d={\'a\':1,\'b\':2,\'c\':3}
print(d.popitem())
print(d)

16.如何查找字符串中的特定字符?Find()和index有什么不同?

s=\'dssadughsgg\'
#print(s.find(\'e\'))#-1
#find 找到查找字符的位置,找不到就返回-1

print(s.index(\'v\'))#找不到就报错

17.Python常用的第三方库

http://blog.csdn.net/qq_33610643/article/details/53444130

 18.描述一下表与视图的区别?

# 1、视图是已经编译好的sql语句。而表不是   
# 2、视图没有实际的物理记录。而表有。
# 3、表是内容,视图是窗口
# 4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改
# 5、表是内模式,试图是外模式
# 6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
# 7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 
# 8、视图的建立和删除只影响视图本身,不影响对应的基本表。
# 9、不能对视图进行update或者insert into操作。

19.索引有什么作用?有哪些分类?有什么好处和坏处?

一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,
因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。索引在mysql中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能 非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。 索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。 索引相当于字典的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页去查。 通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据。
普通索引INDEX:加速查找

唯一索引:
    -主键索引PRIMARY KEY:加速查找+约束(不为空、不能重复)
    -唯一索引UNIQUE:加速查找+约束(不能重复)

联合索引:
    -PRIMARY KEY(id,name):联合主键索引
    -UNIQUE(id,name):联合唯一索引
    -INDEX(id,name):联合普通索引
索引有三大好处
1:能够提高数据检索的效率,降低数据库的IO成本
2:能够提高排序检索的性能
3:能够提高分组检索的性能
索引的坏处
1:增加硬盘存储空间
2:增加增删改带来的IO量

20.dict 的 items() 方法与 iteritems() 方法的不同?

items方法将所有的字典以列表方式返回,其中项在返回时没有特殊的顺序;

iteritems方法有相似的作用,但是返回一个迭代器对象

 

以上是关于2.16的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用提交二进制被拒绝 (2.16) + UIBackgroundModes

2.16 umask

Log4j 2.16 中的 PropertyConfigurator.configure() (log4j 1.2.4) 替换

2.16

学习日记(2.15---2.16)

SICP_2.12-2.16(部分习题)