Python题库100-第二天

11、简述面向对象中__new__和__init__区别

init 和 new 最主要的区别在于:
1.init 通常用于初始化一个新实例,控制这个初始化的过程,比如添加一些属性, 做一些额外的操作,发生在类实例被创建完以后。它是实例级别的方法。
2.new 通常用于控制生成一个新实例的过程。它是类级别的方法。

12、简述with方法打开处理文件帮我们做了什么?

打开文件在进行读写的时候可能会出现一些异常状况,如果按照常规的f.open写法,我们需要try,except,finally,做异常判断,并且文件最终不管遇到什么情况,都要执行finally f.close()关闭文件,with方法帮我们实现了finally中f.close。

13、列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]。

def f(x):
    return x ** 2
res = map(f, [1, 2, 3, 4, 5])
print([i for i in res if i > 10])

14、python中生成随机整数、随机小数、0–1之间小数方法。
random模块
随机整数
random.randint(a,b):返回随机整数x,a<=x<=b
random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整数,不包括结束值。

import random
a = random.randint(1,10)
print(a)
b = random.randrange(1,5)
print(b)

15、避免转义给字符串加哪个字母表示原始字符串?

r , 表示需要原始字符串,不转义特殊字符

16、<div class=“name”>中国</div>,用正则匹配出标签里面的内容(“中国”),其中class的类名是不确定的。

import re
s = r'<div class="name">中国</div>'
pl = r'<div class="name">(.*?)</div>'

patternl = re.compile(pl)
res = patternl.findall(s)
print(res)

17、python中断言方法举例。

"""断言"""
k = 6
assert (k>1)
print("断言成功,程序继续进行")

assert (k>7)
print("断言失败,程序报错")

18、数据表student有id,name,score,city字段,其中name中的名字可有重复,需要消除重复行,请写sql语句。

select distinct name from student

19、10个Linux常用命令。

mv :移动文件/重命名文件
cp :拷贝文件/备份文件
cd :切换路径
mkdir : 创建目录
scp :远程拷贝文件
ifconfig :查看网络设备
ssh : 远程登录服务器
df :查看挂载盘使用情况
ls :列出文件
chmod :修改权限
chown :修改文件所属用户

20、python2和python3区别?列举5个
除法运算
Python 中的除法较其它语言显得非常高端,有套很复杂的规则。Python 中的除法有两个运算符,/ 和 //
首先来说 / 除法:
在 Python 2.x 中 / 除法就跟我们熟悉的大多数语言,比如 Java 和 C ,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。
在 Python 3.x 中 / 除法不再这么做了,对于整数之间的相除,结果也会是浮点数。

print语句
python2中print是一个语句,不论想输出什么,直接放到print关键字后面即可。python3里,print()是一个函数,像其他函数一样,print()需要你将要输出的东西作为参数传给它。

UNICODE字符串
python2中有两种字符串类型:Unicode字符串和非Unicode字符串。Python3中只有一种类型:Unicode字符串。

全局函数UNICODE()
python2有两个全局函数可以把对象强制转换成字符串:unicode()把对象转换成unicode字符串,还有str()把对象转换为非Unicode字符串。Python3只有一种字符串类型,unicode字符串,所以str()函数即可完成所有的功能。

xrange
在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典推导式。
这个表现十分像生成器(比如。“惰性求值”)。但是这个 xrange-iterable 是无穷的,意味着你可以无限遍历。
由于它的惰性求值,如果你不得仅仅不遍历它一次,xrange() 函数 比 range() 更快(比如 for 循环)。尽管如此,对比迭代一次,不建议你重复迭代多次,因为生成器每次都从头开始。

在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange() 会抛出命名异常)。

21、列出python中可变数据类型和不可变数据类型,并简述原理
可变类型(mutable):变量进行append、+=等这种操作后 == 改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

  • list
  • dict
  • set
  • byte
  • array
  • user-defined
  • classes (除非是特别定义的不可变)

不可变类型(immutable):改变了变量的值 == 新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址), python的id() 方法让你明白

  • int
  • float
  • decimal
  • complex
  • bool
  • string
  • tuple
  • range
  • frozenset
  • bytes

22、s = “ajldjlajfdljfddd”,去重并从小到大排序输出"adfjl"

t = "ajldjlajfdljfddd"
t = set(t)
t = list(t)
t.sort(reverse=False)
s = "".join(t)
print(s)

23、用lambda函数实现两个数相乘

res = lambda j,k : j*k
print(res(9,9))

24、字典根据键从小到大排序

a = {'a1':2, 'a2':4, 'a4':1,'a3':3,}
for k in sorted(a):
    print(k,a[k])

25、利用collections库的Counter方法统计字符串每个单词出现的次数"kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"

from collections import Counter
a = "kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"
res = Counter(a)
print(res)

26、字符串a = “not 404 found 张三 99 深圳”,每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三 深圳"

import re
S = "not 404 found 张三 99 深圳"
L = S.split(" ")                           # ['not', '404', 'found', '张三', '99', '深圳']
res = re.findall("\d+|[a-zA-Z]+", S)       # ['not', '404', 'found', '99']
tmp = [item for item in L if not item in res] # ['张三', '深圳']
print(" ".join(tmp))                          # 张三 深圳
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值