Python面试大全——Python基础

目录

  • 1、输入日期,判断这一天是这一年的第几天?

  • 2、打乱一个排好序的list对象alist?

  • 3、现有字典d = {'a':24,'g':52,'i':12,'k':33}请按value值进行排序?

  • 4、反转字符串 "aStr"

  • 5、将字符串"k:1|k1:2|k2:3|k3:4",处理成字典 {k:1,k1:2,...}

  • 6、请按alist中元素的age由大到小排序

  • 7、下面代码的输出结果将是什么?

  • 8、写一个列表生成式,产生一个公差为11的等差数列。

  • 9、给定两个列表,怎么找出他们相同的元素和不同的元素?

  • 10、请写出一段Python代码实现删除list里面的重复元素?

  • 11、给定两个list A、B,请用找出A、B中相同与不同的元素

  • 12、Python中内置的数据结构有几种?

  • 13、反转一个整数,例如 -123 --> -321

  • 14、一行代码实现1-100之和

  • 15、Python遍历列表时删除元素

  • 16、可变类型和不可变类型

  • 17、is和==有什么区别? 

  • 18、求出列表所有奇数并构造新列表

  • 19、用一行Python代码写出1+2+3+10248

  • 20、Python中变量的作用域?(变量查找顺序)

  • 21、Python代码实现删除一个list里面的重复元素

  • 22、统计一段字符串中字符出现的次数

1、输入日期,判断这一天是这一年的第几天?

import datetime
def dayofyear():
    year = input("请输入年份: ")
    month = input("请输入月份: ")
    day = input("请输入天: ")
    date1 = datetime.date(year=int(year),month=int(month),day=int(day))
    date2 = datetime.date(year=int(year),month=1,day=1)
    return (date1-date2).days+1

 

运行结果:

图片

 

2、打乱一个排好序的list对象alist?

import random
alist = [1,2,3,4,5]
random.shuffle(alist)
print(alist)

 

运行结果:

图片

 

3、现有字典d = {'a':24,'g':52,'i':12,'k':33}请按value值进行排序?

d = {'a':24,'g':52,'i':12,'k':33}
c = sorted(d.items(),key=lambda x:x[1])
print(c)

 

运行结果:

x[0]代表用key进行排序;x[1]代表用value进行排序。

图片

 

4、反转字符串 "aStr"

print("aStr"[::-1])

 

运行结果:

图片

 

5、将字符串"k:1|k1:2|k2:3|k3:4",处理成字典 {k:1,k1:2,...}

str1 = "k:1|k1:2|k2:3|k3:4"
def str2dict(str1):
    dict1 = {}
    for iterms in str1.split('|'):
        key,value = iterms.split(':')
        dict1[key] = value
    return dict1
#字典推导式
d = {k:int(v) for t in str1.split("|") for k, v in (t.split(":"), )}
print(d)

 

运行结果:

图片

 

6、请按alist中元素的age由大到小排序

alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
def sort_by_age():
    return sorted(alist,key=lambda x:x['age'],reverse=True)
print(sort_by_age())

 

运行结果:

图片

 

7、下面代码的输出结果将是什么?

list = ['a','b','c','d','e']
print(list[10:])

 

运行结果:

输出[],不会产生IndexError错误,就像所期望的那样,尝试用超出成员的个数的index来获取某个列表的成员。例如,获取list[10]和之后的成员,会导致IndexError。然而,尝试获取列表的切片,开始的index超过了成员个数不会产生IndexError,而是仅仅返回一个空列表。

图片

 

例如:list[10],运行报错。

图片

在这里推荐一个我自己创建的软件测试交流群,QQ:642830685,群中会不定期的分享软件测试资源,测试面试题以及测试行业资讯,大家可以在群中积极交流技术,还有大佬为你答疑解惑。

8、写一个列表生成式,产生一个公差为11的等差数列。

print([x*11 for x in range(10)])

 

运行结果:

图片

 

9、给定两个列表,怎么找出他们相同的元素和不同的元素?

list1 = [1,2,3]
list2 = [3,4,5]
set1 = set(list1)
set2 = set(list2)
print("相同的元素:" + str(set1 & set2))
print("不同的元素:" + str(set1 ^ set2))

 

运行结果:

图片

 

10、请写出一段Python代码实现删除list里面的重复元素?

(1)方式一:

l1 = ['b','c','d','c','a','a']
l2 = list(set(l1))
print(l2)

 

运行结果:

图片

 

(2)方式二:

l1 = ['b','c','d','c','a','a']
l2 = list(set(l1))
l2.sort(key=l1.index)
print(l2)

 

运行结果:

图片

 

(3)方式三:

l1 = ['b','c','d','c','a','a']
l2 = sorted(set(l1),key=l1.index)
print(l2)

 

运行结果:

图片

 

(4)方式四:

l1 = ['b','c','d','c','a','a']
l2 = []
for i in l1:
    if not i in l2:
        l2.append(i)
print(l2)

 

运行结果:

图片

 

11、给定两个list A、B,请用找出A、B中相同与不同的元素

A、B中相同元素: print(set(A)&set(B)) 
A、B中不同元素: print(set(A)^set(B))

 

12、Python中内置的数据结构有几种?

(1)整型 int、长整型 long、浮点型 float、复数 complex b

(2)字符串 str、列表 list、元祖 tuple、字典 dict、集合 set

(3)Python3中没有long,只有无限精度的int

 

13、反转一个整数,例如 -123 --> -321

class Solution(object):
    def reverse(self,x):
        if -10<x<10:
            return x
        str_x = str(x)
        if str_x[0] !="-":
            str_x = str_x[::-1]
            x = int(str_x)
        else:
            str_x = str_x[1:][::-1]
            x = int(str_x)
            x = -x
        return x if -2147483648<x<2147483647 else 0
if __name__ == '__main__':
    my_int = -123456789
    s = Solution()
    reverse_int = s.reverse(my_int)
    print(reverse_int)

 

运行结果:

图片

 

14、一行代码实现1-100之和

print(sum(range(0,101)))

 

运行结果:

图片

 

15、Python遍历列表时删除元素

(1)正序删除:

a = [1,2,3,4,5,6,7,8]
print(id(a))
print(id(a[:]))
for i in a[:]:
    if i > 5:
        pass
    else:
        a.remove(i)
    print(a)
print('-----------')
print(id(a))

 

运行结果:

图片

 

(2)倒序删除:

a = [1,2,3,4,5,6,7,8]
print(id(a))
for i in range(len(a)-1,-1,-1):
    if a[i] > 5:
        pass
    else:
        a.remove(a[i])
    print(a)
print('-----------')
print(a)

 

运行结果:

图片

 

16、可变类型和不可变类型

(1)可变类型有list、dict;不可变类型有string、number、tuple。

(2)当进行修改操作时,可变类型传递的是内存中的地址,也就是说,直接修改内存中的值,并没有开辟新的内存。

(3)不可变类型被改变时,并没有改变原内存地址中的值,而是开辟一块新的内存,将原地址中的值复制过去,对这块新开辟的内存中的值进行操作。

 

17、is和==有什么区别? 

is:比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象。是否指向同一个内存地址。

==:比较的两个对象的内容/值是否相等,默认会调用对象的eq()方法。

 

18、求出列表所有奇数并构造新列表

a = [1,2,3,4,5,6,7,8,9,10]
res = [ i for i in a if i%2==1]
print(res)

 

运行结果:

图片

 

19、用一行Python代码写出1+2+3+10248

from functools import reduce

# 1、使用sum内置求和函数
num1 = sum([1,2,3,10248])
print(num1)

# 2、reduce函数
num2 = reduce(lambda x,y:x+y,[1,2,3,10248])
print(num2)

 

运行结果:

图片

 

20、Python中变量的作用域?(变量查找顺序)

函数作用域的LEGB顺序

L:local 函数内部作用域

E:enclosing 函数内部与内嵌函数之间

G:global 全局作用域

B:build-in 内置作用

Python在函数里面的查找分为4种,称之为LEGB,也正是按照这个顺序来查找的。

 

21、Python代码实现删除一个list里面的重复元素

def distFunc1(a):
    """使用集合去重"""
    a = list(set(a))
    print(a)

def distFunc2(a):
    """将一个列表的数据取出放到另一个列表中,中间做判断"""
    list = []
    for i in a:
        if i not in list:
            list.append(i)
    # 如果需要排序的话用sort
    list.sort()
    print(list)

def distFunc3(a):
    """使用字典"""
    b = {}
    b = b.fromkeys(a)
    c = list(b.keys())
    print(c)

if __name__ == "__main__":
    a = [1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]
    distFunc1(a)
    distFunc2(a)
    distFunc3(a)

 

运行结果:

图片

 

22、统计一段字符串中字符出现的次数

def count_str(str_data):
    dict_str = {}
    for i in str_data:
        dict_str[i] = dict_str.get(i, 0) + 1
    return dict_str
dict_str = count_str("AAABBCCAC")
str_count_data = ""
for k, v in dict_str.items():
    str_count_data += k + "=" + str(v) + ","
print(str_count_data)

 

运行结果:

图片

在这里推荐一个我自己创建的软件测试交流群,QQ:642830685,群中会不定期的分享软件测试资源,测试面试题以及测试行业资讯,大家可以在群中积极交流技术,还有大佬为你答疑解惑。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值