北京诺信创联-Python爬虫工程师

1. 下面两段代码的输出是什么?

第一段代码:

a = 1

def fun(a):
    a = 2

fun(a)
print(a)

输出结果:

1

第二段代码:

a = []

def fun(a):
    a.append(1)
fun(a)
print(a)

输出结果:

[1]

2. 写一个装饰器

def singleton(cls, *args, **kw):
    instances = {}
    def getinstance():
        if cls not in instances:
            instances[cls] = cls(*args, **kw)
        return instances[cls]
    return getinstance

@singleton
class MyClass:
  ...

3. Python中会有函数或成员变量包含单下划线前缀和结尾,和双下划线前缀结尾,例如_x_,或__x__,区别是什么?

  • _x_: 不能用于from module import * 以单下划线开头的表示的是protected类型的变量。即保护类型只能允许其本身与子类进行访问。
  • __x__: 对Python 来说有特殊含义,魔法方法。

4. 描述__new____init__的区别。

  • __new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供

  • __new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以return父类__new__出来的实例,或者直接是object的__new__出来的实例

  • __init__有一个参数self,就是这个__new__返回的实例,__init____new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值

  • 我们可以将类比作制造商,__new__方法就是前期的原材料购买环节,__init__方法就是在有原材料的基础上,加工,初始化商品环节

5. 请写出你使用过的SQL函数(function)

  • avg(column): 返回某列的平均值
  • count(column): 返回某列的行数(不包括NULL值)
  • count(*): 返回被选行数
  • max(column): 返回某列的最大值
  • min(column): 返回某列的最小值
  • sum(column): 返回某列的总和

6. 请写出Mysql中有多少中连接(join)方式。

  • inner join: 内连接
  • join: 如果表中有至少一个匹配,则返回行
  • left join:即使右表中没有匹配,也从左表返回所有的行。
  • right join: 即使左表中没有匹配,也会从由表返回所有的行
  • full join: 只要其中一个表中存在匹配,就返回行。

7. 有两张MySQL的表,请编写一段SQL,查询每个省有多少数量的医生。

Table A 医院

Hospital_id Province name
1 四川 华西医院
2 河北 河北省人民医院
3 北京 协和医院
4 北京 北医三院

Table B 医生

id name Hospital_id
1 王强 2
2 张倩 3
3 赵日天 4
4 叶良辰 1
select count(Province) from table_a,table_b where table_a.Hospital_id = table_b.hospital_id group by Province; 

猜你喜欢

转载自blog.csdn.net/pythoncodez/article/details/80494497
今日推荐