面试题--Python基础

python2:

  • 默认编码是ascii
  • input获取的是数据本身
  • bytes类型是字符串,unicode是字节
  • 没有打印range(10)获取的是列表1-9
  • 除法向下取整

python3:

  • 默认编码unicode
  • input获取的是字符串
  • str是字符串,bytes是字节
  • 打印range(10)是range(0,10)
  • 除法返回小数

1

0

v1:list内三个int

v2:list内三个int

v3:list内三个tuple

a = 1
b = 2
a, b = b, a

单引号:字符串

双引号:字符串

三引号:多行注释

is:判断两边的内存地址是否相同

==:判断两边数值是否相同

tuple(),list()

name = "老男孩"
name[::-1]

交集:&

并集:|

差集:-

y不等于0的情况下都成立

import copy
copy.copy(obj)

赋值:只是将一个变量赋予了不同的变量名,相当于别名

浅拷贝:只拷贝源数据的最外层数据,共用源数据的内层数据

深拷贝:将源数据全部拷贝一份新的

占位,后续添加逻辑

[1, 2, 4, 5, ['b', 'c', 'd'], 5]
[1, 2, 4, 5, ['b', 'c', 'd']]
[1, 2, 4, 5, ['b', 'c']]

for i in range(10):
    for j in range(1, i+1):
        print('{}x{}={}'.format(i, j, i * j), end = ' ')
    print('\n', end = '')

a, b = 0, 1
while b < 100:
   print (b, end = " ")
   a, b = b, a + b

set()

with open('etl_log.txt', encoding = 'utf-8') as f:
    for i in f:
        print(i.strip())

字典

匿名函数

*args 和 **kwargs在函数定义阶段形参的位置代表聚合,接收任意参数,在函数体内代表打散

global

都为高阶函数

filter:过滤

map:映射

reduce:累加

名为lambda的函数就是匿名函数,方便

官方说明最大深度1000,实际测试997/998

迭代器:具有__iter__()和__next__()方法的对象称为迭代器

可迭代对象:具有__next__()方法的对象称为可迭代对象

生成器:生成器就是程序员自己写的迭代器

装饰器:在不改变原函数的代码及其调方式的情况下,为其添加新的功能,为装饰器

反射:使用字符串来操作对象的属性和方法

def warpper(f):
    def inner(*args, **kwargs):
        print('1')
        ret = f(*args, **kwargs)
        print('2')

        return ret
    return inner


@warpper
def func():
    print('a')


func()

def auth(argv):
    def warpper(f):
        def inner(*args, **kwargs):
            if argv:
                print('1')
            else:
                print('2')
            ret = f(*args, **kwargs)
            return ret
        return inner
    return warpper


@auth(True)
def func():
    print('a')


func()

[6, 6, 6, 6]

猜你喜欢

转载自www.cnblogs.com/iduoduo/p/12366078.html