北京诺信创联-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_idProvincename
1四川华西医院
2河北河北省人民医院
3北京协和医院
4北京北医三院

Table B 医生

idnameHospital_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; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值