20.关于python基础的面试题
今天看到python大本营发了一篇关于python面试题的博客,作为一个菜鸟大概做了下基础题部分,把能做的大概做了下
面试题
一.文件操作NA
二.模块与包
1.输入日期,判断这一天是这一年的第几天,
import calendar #好像有模块是支持此功能的,但我不会,写了个函数实现
def Judgeday(year,month,day):
if calendar.isleap(year):
a=[31,29,31,30,31,30,31,31,30,31,30,31]
return sum(a[:(month-1-1)])+day
else:
a=a=[31,28,31,30,31,30,31,31,30,31,30,31]
return sum(a[:(month-1)])+day
2.打乱一个排好序的list对象alist
a=[1,2,3,4,5,6]
import random
random.shuffle(a)
print(a)
三.数据类型
1.现有字典d={‘a’:24,‘g’:52,‘i’:12,‘k’:33}
def func(L):
return L[1]
d={'a':24,'g':52,'i':12,'k':33}
dict(sorted(d.items(),key=func))
2.字典推导式
d={'a':24,'g':52,'i':12,'k':33}
{v:k for k,v in d.items()}
3.请翻转字符串’abcdserc3r5’
a='abcdserc3r5'
a[::-1]
4.将字符串’k:1|k2:1|k3:2|k4:3’
result={}
lista=[]
a='k:1|k2:1|k3:2|k4:3'
a=a.split('|')
for i in a:
lista.append(i.split(':'))
dict(lista)
5.请按alist中元素的age由大到小排序
lista={'a':24,'g':52,'i':12,'k':33}
def func(L):
return L[1]
dict(sorted(lista.items(),key=func,reverse=True))
6.下面的代码输出结果将是什么?
NA
7.写一个列表生成式,产生一个公差未11的等差数列
[i for i in range(0,100,11)]
8.给定两个列表,怎么找出他们相同的严肃和不同的元素?(类似题10)
9.请写出一段python代码实现删除一个list里面的重复元素?
#原地删除不好弄啊
a=[1,2,3,4,5,6,4,2,1,7,8,4]
i=0
while i<len(a):
if a[i] in a[i+1:]:
a.remove(a[i])
print(a)
print(len(a))
else:
i+=1
print(a)
10.给定两个listA,B,请用找出A,B中相同与不同的元素
A=[1,2,3,4,5,6,7]
B=[2,3,5,7,9,2,1]
#相同的
xiangtong=[]
for i in A:
if i in B and i not in xiangtong:
xiangtong.append(i)
print(xiangtong)
#不同的
butong=[]
for i in A:
if i not in B and i not in butong:
butong.append(i)
for i in B:
if i not in A and i not in butong:
butong.append(i)
print(butong)