首页 > 编程语言 > 详细

python基础题

时间:2020-02-26 12:32:59      阅读:78      评论:0      收藏:0      [点我收藏+]
  1. 简述列举了解的编程语言及语言间的区别?

     ptyhon:解释型语言,相对简单易学
     c:编译型语言 底层语言
     java:混合型语言
  1. 列举Python2和Python3的区别?

Python2:源码不统一,有重复的功能代码

Python3:源码统一,没有重复的功能代码

  1. 看代码写结果

 v1 = 1 or 2                 1
 v2 = 3 and 7 or 9 and 0 7
  1. 比较以下值有什么不同?

 v1 = [1,2,3]                列表
 v2 = [(1),(2),(3)] 列表
 v3 = [(1,),(2,)(3,)] 列表套元组
  1. 用一行代码实现数值交换。

 a = 1
 b = 2 a,b = b,a
  1. Python中单引号、双引号、三引号的区别?

     单双引号可以互相包含,避免转义
     三引号注释
  2. is和==的区别?

     is判断ID值是否相同
     ==比较像个对象的值是否相等
  3. python里是如何实现tuple和list的转化?

 列表转元组:
 lst = [1,2,3,4]
 tu = tuple(lst)
 元组转列表:
 tu = (1,2,3,4)
 lst = list(tu)
  1. 如何实现字符串name = ‘老男孩‘的反转?

 name = ‘老男孩‘
 name1 = name[::-1]
 ?
 print(reversed(name))
  1. 两个set如何获取交集、并集、和差集?

 交集 ——  &
 并集 —— |
 差集 —— -
  1. 那些情况下,y!=x-(x-y)会成立?

 x,y是步行等的非空集合
  1. Python中如何拷贝一个对象?

 copy.copy()
 copy.deepcopy()
  1. 简述赋值、浅拷贝、深拷贝的区别?

 赋值:多个变量名指向同一个内存地址就是赋值
 浅拷贝:只拷贝第一层元素
 深拷贝:不可变数据类型共用,可变数据类型开辟新空间
  1. pass的作用?

 pass:占位
  1. 阅读代码写结果。

 import copy
 a = [1,2,4,5,[‘b‘,‘c‘]]
 b = a
 c = copy.copy(a)
 d = copy.deepcopy(a)
 ?
 a.append(5)
 a[4].append(‘d‘)
 ?
 print(b)
 print(c)
 print(a)
 ?
 ‘‘‘
 a = [1,2,4,5,[‘b‘,‘c‘,‘d‘],5]
 b = [1,2,4,5,[‘b‘,‘c‘]]
 c = [1,2,4,5,[‘b‘,‘c‘],5]
 ‘‘‘
  1. 用Python实现9*9乘法表。

 j = 1
 while j < 10:
  i = 1
  while i <= j:
  if i == j:
  print(i, ‘*‘, j, ‘=‘, j * i)
  else:
  print(i, ‘*‘, j, ‘=‘, j * i, end=‘ ‘)
  i += 1
  j += 1
 ?
 ?
 for i in range(1, 10):
  for j in range(1, i+1):
  print("%s*%s=%s" % (j, i, i*j), end=‘ ‘)
  print(‘‘)
  1. 用Python显示一个斐波那契数列。

     def foo(n):
         if n == 1:
             return 1
         elif n == 2:
             return 1
         else:
             return foo(n-1) + foo(n-2)
  2. 如何删除列表中重复的值?

 lst = [1,1,2,2,3,3]
 print(set(lst))
  1. 一个大小为100G的文件etl_long.txt,要读取文件中的内容,写出具体过程代码。

 f = open(‘etl_log.txt‘,mode = ‘r‘, encoding = ‘utf-8‘)
 print(f.read())
 ?
 with open(‘etl_log.txt‘, ‘r‘, encoding = ‘utf-8‘)as f:
 print(f.read())
  1. a = dict(zip((‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘), (1, 2, 3, 4, 5)))请问a是什么?

 a = {‘a‘:1, ‘b‘:2, ‘c‘:3, ‘d‘:4, ‘e‘:5}
  1. lambda关键字的作用?

 lambda是定义匿名函数的关键字,相当于普通函数的def
  1. *args和**kwargs作用?

 *args:接受动态位置参数
 **kwargs:接受动态默认参数
  1. 如何在函数中设置一个全局变量?

 global a
  1. filter、map、reduce的作用?

     filter:筛选过滤
     map:映射
     reduce:累计算
  2. 什么是匿名函数?匿名函数有什么作用?

     用lambda能够创建一个匿名函数,匿名函数省略了用def声明函数的标准步骤
     作用:作为自定义函数和内置函数的参数传递
  3. Python递归的最大层数?

     官方:1000
     实际:998
  4. 什么是迭代器?什么是可迭代对象?

     具有--iter() 和 --next() 两个方法,可以被next()函数调用并不断返回下一个值得对象成为迭代器
     具有--iter()方法就是一个可迭代对象
  5. 什么是生成器?

     生成器的本质是迭代器,生成器是程序员自己写的一种迭代器,且具有send方法和yield关键字
  6. 什么是装饰器及应用场景?

     装饰器本质上是一个Python函数,它可以在不改变源代码的情况下增加额外的功能。
     使用场景:
      权限的校验,在函数外层套上校验的代码,实现权限校验
      实现缓存处理
      计算函数的运行次数
      作为函数的运行日志
  7. 什么是反射及应用场景?

     可以通过字符串的形式来操作对象的属性
  8. 写一个普通的装饰器。

     def foo(f):
         def index(*args, **kwargs):
             ret = f(*args, **kwargs)
             return ret
         return index
  9. 写一个带参装饰器。

     def func(f):
         def foo(auth):
             def index(*args, **kwargs):
                 ret = auth()
                 return ret
             return index
         return foo
  10. 求结果

 def num():
  return [lambda x:i*x for i in range(4)]
 print([m(2) for m in num()])
 ?
 ‘‘‘
 [6,6,6,6]
 ‘‘‘
  1. def(a, b=[])这种写法有什么陷阱?

     ?

     

  2. 看代码写结果

 def func(a,b=[]):
  b.append(a)
  return b
 v1 = func(1)
 v2 = func(2,[10,20])
 v3 = func(3)
 print(v1,v2,v3)
 ?
 ‘‘‘
 v1=[1]
 v2=[10,20,2]
 v3=[1,3]
 ‘‘‘
  1. 看代码写结果

 def func(a,b=[]):
  b.append(a)
  return b
 v1 = func(1)
 print(v1) [1]
 v2 = func(2,[10,20])
 print(v2) [10,20,2]
 v3 = func(3)
 print(v3) [1,3]
  1. 请编写一个函数实现将IP地址转换成一个整数。

 如 10.3.9.12 转换规则为:
  10 00001010
  3 00000011
  9 00001001
  12 00001100
 
 再将以上二进制拼接起来计算十进制结果00001010 00000011 00001001 00001100 = ?
  1. 请查找一个目录下所有的文件(文件存在嵌套)。

  2. 求结果

 import math
 print (math.floor(5.5))
  1. 是否使用过functools中的函数?其作用是什么?

 reduce 累计算
  1. re的march和search区别?

     march:从头开始匹配,匹配一个就停止
     search:从任意位置开始匹配,匹配一个就停止
  2. 用Python匹配HTML tag的时候,<>和 <?> 有什么区别?

     .:贪婪匹配,匹配任意多个字符
     .?:非贪婪匹配,只匹配一次
  3. 如何生成一个随机数?

     random.random()
  4. super的作用?

     ?

     

  5. 双下划綫和单下划线的区别?

  6. @staticmenthod和@classmethod的区别?

  7. 实现一个单例模式(加锁)。

  8. 栈和队列的区别?

  9. 以下代码输出的是什么?请给出答案并解释。

 class Parent(object):
  x = 1
 
 class Child1(Parent):
  pass
 
 class Child2(Parent):
  pass
 
 print Parent.x, Child1.x, Child2.x
 ?
 Child1.x = 2
 print Parent.x, Child1.x, Child2.x
 ?
 Parent.x = 3
 print Parent.x, Child1.x, Child2.x
  1. 参考下面代码片段

 class Context:
  pass
 
 
 with Content() as ctx:
  ctx.do_something()
  请在Context类下添加代码完成该类的实现

 

 

 

python基础题

原文:https://www.cnblogs.com/limingyang111/p/12366146.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!