A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

公司名称:神州数据系统集成服务有限公司
注册规模:1000-9999人
公司地址:西安市雁塔区神州数码科技园
公司图片:
面试过程:
1、Linux命令
cd  ls chmodchown  mkdir cp mv grep cat find
2、简单说一下多线程
多任务可以由多进程完成,也可以由一个进程内的多线程完成。调度执行的最小单位,也叫执行路径,不能独立存在,依赖进程存在一个进程至少有一个 线程,叫主线程,而多个线程共享内存(数据共享,共享全局变量),从而极大地提高了程序的运行效率。
3、创建两个线程,其中一个输出1-52,另外一个输出A-Z。输出格式要求:12A 34B 56C 78D
import threading
import time
# 大致思路
# 获取对方的锁,运行一次后,释放自己的锁
def show1():
    for i in range(1, 52, 2):
        lock_show2.acquire()
        print(i, end='')
        print(i+1, end='')
        time.sleep(0.2)
        lock_show1.release()
def show2():
    for i in range(26):
        lock_show1.acquire()
        print(chr(i + ord('A')))
        time.sleep(0.2)
        lock_show2.release()
lock_show1 = threading.Lock()
lock_show2 = threading.Lock()
show1_thread = threading.Thread(target=show1)
show2_thread = threading.Thread(target=show2)
lock_show1.acquire()  # 因为线程执行顺序是无序的,保证show1()先执行
show1_thread.start()
show2_thread.start()

4、说一下is 和==的区别
is 判断的是 a对象是否就是 b对象,是通过 id来判断的。 ==判断的是 a对象的值是否和b对象的值相等,是通过 value 来判断的。

5、深拷贝与浅拷贝区别
一、赋值 在Python中,对象的赋值就是简单的对象引用,这点和C++不同,如下所示: 16.a = [1,2,"hello",['python', 'C++']] 17.b = a 在上述情况下,a和b是一样的,他们指向同一片内存,b不过是a的别名,是引用。
我们可以使用bisa 去判断,返回True,表明他们地址相同,内容相同,也可以使用id()函数来查 看两个列表的地址是否相同。 赋值操作(包括对象作为参数、返回值)不会开辟新的内存空间,它只是复制了对象的引用。也就是 说除了b这个名字之外,没有其他的内存开销。修改了a,也就影响了b,同理,修改了b,也就影响 了a。 二、浅拷贝(shallow copy) 浅拷贝会创建新对象,其内容非原对象本身的引用,而是原对象内第一层对象的引用。 浅拷贝有三种形式:切片操作、工厂函数、copy模块中的copy函数。 比如上述的列表a; 切片操作:b = a[:] 或者 b = [x for x in a]; 工厂函数:b = list(a); copy函数:b = copy.copy(a); 浅拷贝产生的列表b不再是列表a了,使用is判断可以发现他们不是同一个对象,使用id查看, 他们也不指向同一片内存空间。但是当我们使用id(x) for x in a和 id(x) for x in b来查看a和b 中元 素的地址时,可以看到二者包含的元素的地址是相同的。 在这种情况下,列表a和b是不同的对象,修改列表b理论上不会影响到列表a。 但是要注意的是,浅拷贝之所以称之为浅拷贝,是它仅仅只拷贝了一层,在列表a中有一个嵌套的 list,如果我们修改了它,情况就不一样了。 比如:a[3].append('java')。查看列表b,会发现列表b也发生了变化,这是因为,我们修改了嵌 套的list,修改外层元素,会修改它的引用,让它们指向别的位置,修改嵌套列表中的元素,列表的地 址并未发生变化,指向的都是用一个位置。 三、深拷贝(deep copy)
深拷贝只有一种形式,copy模块中的deepcopy()函数。 深拷贝和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。因此,它的时间和空 间开销要高。 同样的对列表a,如果使用 b = copy.deepcopy(a),再修改列表b将不会影响到列表a,即使嵌 套的列表具有更深的层次,也不会产生任何影响,因为深拷贝拷贝出来的对象根本就是一个全新的对象, 不再与原来的对象有任何的关联。 四、拷贝的注意点? 对于非容器类型,如数字、字符,以及其他的“原子”类型,没有拷贝一说,产生的都是原对象的 引用。 如果元组变量值包含原子类型对象,即使采用了深拷贝,也只能得到浅拷贝。
5、输入某年某月某日,判断这一天是这一年的第几天?(
import datetime
def dayofyear():
year = input("请输入年份:")
month = input("请输入月份:")
day = input("请输入天:")
date1 =datetime.date(year=int(year),
month=int(month),
day=int(day))
date2 = datetime.date(year=int(year),
month=1,day=1)
return(date1 - date2 + 1).days
6、如何用Python来进行查询和替换一个文本字符串?
可以使用sub()方法来进行查询和替换,sub方法的格式为:sub(replacement, string[, count=0])
replacement是被替换成的文本
string是需要被替换的文本

count是一个可选参数,指最大被替换的数量


135 个回复

正序浏览
感谢分享     加油
回复 使用道具 举报
wangxue123456 发表于 2019-1-9 17:51
66666666666666666666666666666666666

不错不错!不错不错!不错不错!
回复 使用道具 举报

不错不错!不错不错!
回复 使用道具 举报

不错不错!不错不错!
回复 使用道具 举报

不错不错!不错不错!
回复 使用道具 举报
wangxue123456 发表于 2019-1-9 17:51
66666666666666666666666666666666666

不错不错!不错不错!
回复 使用道具 举报
wangxue123456 发表于 2019-1-9 17:40
66666666666666666666666666666666666666

不错不错!不错不错!
回复 使用道具 举报
wangxue123456 发表于 2019-1-9 17:37
66666666666666666666666666666666666666

不错不错!不错不错!
回复 使用道具 举报

不错不错!不错不错!
回复 使用道具 举报
凯凯小王子 发表于 2019-1-9 16:54
谢谢楼主,辛苦了...........

不错不错!不错不错!
回复 使用道具 举报
kdhdjdj 发表于 2019-1-9 08:21
666666666666666666666666

不错不错!不错不错!
回复 使用道具 举报
1467584 发表于 2019-1-8 18:23
666666666666666666666666666666

不错不错!不错不错!
回复 使用道具 举报

不错不错!不错不错!
回复 使用道具 举报

不错不错!不错不错!
回复 使用道具 举报

不错不错!不错不错!
回复 使用道具 举报
半个程序员 发表于 2019-1-8 14:24
Thanks,
Your friends at GitHub

不错不错!不错不错!
回复 使用道具 举报
半个程序员 发表于 2019-1-8 14:24
Thanks,
Your friends at GitHub

不错不错!不错不错!
回复 使用道具 举报
王航 发表于 2019-1-8 13:53
666666666666666666666666

不错不错!不错不错!
回复 使用道具 举报

不错不错!不错不错!
回复 使用道具 举报
18629541359 发表于 2019-1-8 12:46
很到位,谢谢分享!

不错不错!不错不错!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马