zoukankan      html  css  js  c++  java
  • 常见问题集锦

    # 赋值
    # lst1=[4,3,2]
    # lst2=lst1
    # lst2.append(1)
    # print(lst1)

    # 浅拷贝
    # lst1=[4,3,2]
    # lst2=lst1[::]
    # lst2.append(1)
    # print(lst1)
    # lst3=lst1[::-1] //反转list
    # print(lst3)

    # print(6//3)
    # print(5//3) 整除/地板除

    # 判断回文数(列表)
    # def is_Huiwenshu(x):
    # mm = str(x)
    # if mm==mm[::-1]:
    # return True
    # else:
    # return False

    # reverse()用法、字符串逆序
    # a = 'abcdefgh'
    # print(a[::-1])
    # t = list(a)
    # t.reverse()
    # "".join(t)
    # print(t)
    # 写成函数
    # def reverseStr(ss):
    # c = []
    # for i in range(len(ss)):
    # c.append(ss[i])
    # c.reverse()
    # return ''.join(c)

    # 判断回文数
    # def converted(s):
    # ss = s[:]
    # if len(ss)>2 and s==ss[::-1]:
    # return True
    # else:
    # return False
    #
    # s = 'abcdcba'
    # print(converted(s))

    # 随机生成100个数,然后写入文件
    # import random
    # with open('1.txt','w') as f:
    # for i in range(1,101):
    # n = random.randint(1,100)
    # f.write(str(n)+' ')

    # 给字典排序
    # dict = {'a':3,'bc':5,'c':3,'asd':4,'33':56,'d':0}
    # mm = sorted(dict.items(),key=lambda i:i[0],reverse=True) #按键值进行排序

    # lst = [4,7,3,2,8]
    # ll=lst.sort() #sort() 会改变原来List的值(顺序)
    # mm=sorted(lst) #sorted(xx) 不会改变原来list的值(顺序)

    # 对列表去重
    # a=[1,3,4,4,2,2,5,3]
    # print(set(a)) #利用集合去重

    # for i in a: #利用count循环去重
    # if a.count(i)>1:
    # a.remove(i)
    # print(a)

    #排序算法
    #a=[1,3,4,4,2,2,5,3]
    #for i in range(len(a)-1):
    # for j in range(i+1,len(a)):
    # if a[i]>a[j]:
    # a[i],a[j]=a[j],a[i]


    Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)

    答:赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。

    浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数}

    深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数}

     

    介绍一下except的用法和作用?

    答:try…except…except…[else…][finally…]

    执行try下的语句,如果引发异常,则执行过程会跳到except语句。对每个except分支顺序尝试执行,如果引发的异常与except中的异常组匹配,执行相应的语句。

    如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。

    try下的语句正常执行,则执行else块代码。如果发生异常,就不会执行

    如果存在finally语句,最后总是会执行。

     

    Python里面如何生成随机数?

    答:random模块

    随机整数:random.randint(a,b):返回随机整数x,a<=x<=b

    random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整数,不包括结束值。

    随机实数:random.random( ):返回0到1之间的浮点数

    random.uniform(a,b):返回指定范围内的浮点数。

     

    Python里的浅拷贝和深拷贝

    赋值(引用),copy(),deepcopy()的区别

    import copy
    
    a = [1, 2, 3, 4, ['a', 'b']]  # 创建原始对象
    
    b = a                         # 赋值,对内存中对象的引用
    c = copy.copy(a)              # 对象拷贝,浅拷贝
    d = copy.deepcopy(a)          # 对象拷贝,深拷贝
    
    a.append(5)                   # 修改对象a
    a[4].append('c')              # 修改对象a中的['a', 'b']数组对象
    
    print('a = ', a)
    print('b = ', b)
    print('c = ', c)
    print('d = ', d)
    
    '''
    输出结果:
    a =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    b =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    c =  [1, 2, 3, 4, ['a', 'b', 'c']]
    d =  [1, 2, 3, 4, ['a', 'b']]


    Python中read,readline,readlines的区别

    • read,读取整个文件
    • readline,读取下一行,使用生成器方法
    • readlines,读取整个文件到一个迭代器以供我们遍历

    这两个参数是什么意思:*args,**kwargs?我们为什么要使用它们?

    答:如果我们不确定往一个函数中传入多少参数,或者我们希望以元组(tuple)或者列表(list)的形式传参数的时候,我们可以使用*args(单星号)。如果我们不知道往函数中传递多少个关键词参数或者想传入字典的值作为关键词参数的时候我们可以使用**kwargs(双星号),args、kwargs两个标识符是约定俗成的用法。

    另一种答法:当函数的参数前面有一个星号*号的时候表示这是一个可变的位置参数,两个星号**表示这个是一个可变的关键词参数。星号*把序列或者集合解包(unpack)成位置参数,两个星号**把字典解包成关键词参数。

    代码辅助理解:

    谈一谈Python的装饰器(decorator)

    装饰器本质上是一个Python函数,它可以让其它函数在不作任何变动的情况下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景。比如:插入日志、性能测试、事务处理、缓存、权限校验等。有了装饰器我们就可以抽离出大量的与函数功能无关的雷同代码进行重用。

    什么是lambda表达式?它有什么好处?

    简单来说,lambda表达式通常是当你需要使用一个函数,但是又不想费脑袋去命名一个函数的时候使用,也就是通常所说的匿名函数。

    lambda表达式一般的形式是:关键词lambda后面紧接一个或多个参数,紧接一个冒号“:”,紧接一个表达式。lambda表达式是一个表达式不是一个语句。

    有关sql:

    1. 商品表jd_sku,请用一条sql语句查询出所有字段shop_id取值重复的记录。

    Select * from jd_sku where shop_id in (select shop_id from jd_test group by shop_id having count(shop_id)>1)

    1. 现有一个app功能,用户通过消息中心获取免费兑换门票入口,用户通过入口后可以进入门票兑换页面(html5页面),在兑换时后台会对用户进行身份验证(APP有扫一扫功能,也可扫描对应的链接进入页面),兑奖成功后礼品会以已付款订单的形式出现在“我的订单”中,请简单写出你对这个功能的测试思路和测试要点。
    2. 输入三个整数,判断三个整数能否构成一个三角形,请用黑盒测试方法中的一种设计出相应的测试用例(列出具体的输入)并详细说明所使用的黑盒测试方法。
    3. Score_detail签到表中,包含用户唯一编号userid,签到时间signtime,上一次签到时间lastsigntime,想知道签到次数大于2的用户并按倒序排序展示,以下查询正确的是:select userid,count(*)>2 from score_detail group by userid having count(*) order by count(*) desc;
    4. Mock接口
    5. 已知关系模式:
      S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名
      C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
      SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩
      写一SQL,功能:列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
    6. student表:sno(学号),sname(姓名),sex(性别),dept(系)
      course课程表:cno(课程号),课程名(cname)
      sc选课表:sno,cno,grade(成绩)
      求:选修了1号课程和2号课程的学生的姓名及成绩
    7. 查询数据库的第10行到20

        limit 10,20

    1. 查出所有name重复的字段?

        Select * from app_student group by name having count(name)>1

  • 相关阅读:
    关于【缓存穿透、缓存击穿、缓存雪崩、热点数据失效】问题的解决方案
    pycharm快捷键
    php 整理的零碎知识点
    phpadmin 导出csv格式的数据处理
    python 单例模式的实现
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
  • 原文地址:https://www.cnblogs.com/fancyl/p/9531316.html
Copyright © 2011-2022 走看看