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
res=dayofyear()
print(res)
2、现有字典 d={} 请按value值进行排序?(新)
d= {'a':24,'g':52,'i':12,'k':33}
d2=sorted(d.items(), key=lambda d: d[1])
d3={key:value for key,value in d2}
print(d3)
3、字典推导式
D={i[0]:i[1] for i in [["a","b"],["c","d"]]}
print(D)
4、将字符串 “k:1 |k1:2|k2:3|k3:4”,处理成字典
方法1
s="k:1|k1:2|k2:3|k3:4"
def str_fun(str_num):
new_dict = {}
for items in str_num.split("|"):
key,value=items.split(":")
new_dict[key]=value
print(new_dict)
str_fun(s)
方法2
str1 = "k:1|k1:2|k2:3|k3:4"
d = {k.split(":")[0]: k.split(":")[1] for k in str1.split("|")}
print(d)
5、请按alist中元素的age由大到小排序
alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
alist_1=sorted(alist,key=lambda x:x['age'],reverse=True)
print(alist_1)
6、下面代码的输出结果将是什么?
list = ['a','b','c','d','e']
print(list[10:])
代码将输出[],不会产生IndexError错误,就像所期望的那样,尝试用超出成员的个数的index来获取某个列表的成员。例如,尝试获取list[10]和之后的成员,会导致IndexError,然而,尝试获取列表的切片,开始的index超过了成员个数不会产生IndexError,而是仅仅返回一个空列表。这成为特别让人恶心的疑难杂症,因为运行的时候没有错误产生,导致Bug很难被追踪到。
7、写一个列表生成式,产生一个公差为11的等差数列
print([x*11 for x in range(10)])
8、给定两个列表,怎么找出他们相同的元素和不同的元素?
set1=set(list1)
set2=set(list2)
li=list(set1 & set2)
li1=list(set1 ^ set2)
print(li)
print(li1)
9、请写出一段python代码实现删除list里面的重复元素
方法1:
lis=[1,2,1,2,3,5,7,4,2]
lis1=list(set(lis))
print(lis1)
方法2:
lis=[1,2,1,2,3,5,7,4,2]
lis1=[]
for i in lis:
if i not in lis1:
lis1.append(i)
print(lis1)
10、反转一个整数,例如-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[::-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__':
s=Solution()
st=s.reverse(-210)
print(st)
11、用一行python代码写出1+2+3+10248
方法1:
print(sum(range(10249)))
方法2:
from functools import reduce
num1=reduce(lambda x,y:x+y,range(10249))
print(num1)
12、一句话解决阶乘函数
num=reduce(lambda x,y : x*y,range(1,4))
print(num)
13、面向对象中怎么实现只读属性?
将对象私有化,通过共有方法提供一个读取数据的接口
class person:
def __init__(self, x):
self.__age = 10
def age(self):
return self.__age
t = person(22)
# t.__age =100
print(t.age())
最好的方法
class MyCls(object):
__weight = 50
@property
def weight(self):
return self.__weight
14、什么是lambda函数? 有什么好处?
lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数
1.lambda函数比较轻便,即用即仍,很适合需要完成一项功能,但是此功能只在此一处使用,连名字都很随意的情况下
2.匿名函数,一般用来给filter,map这样的函数式编程服务
3.作为回调函数,传递给某些应用,比如消息处理
15、递归函数停止的条件?
递归的终止条件一般定义在递归函数内部,在递归调用前要做一个条件判断,根据判断的结果选择是继续调用自身,还是return,返回终止递归。
终止的条件:判断递归的次数是否达到某一限定值
2.判断运算的结果是否达到某个范围等,根据设计的目的来选择
def func_sum(number):
if number>=1:
sum=number+func_sum(number-1)
else:
sum=0
return sum
print(func_sum(6))
16、写一个匿名函数求两个数的和
sum=lambda a,b:a+b
print(sum(3,4))
17、对装饰器的理解,使用装饰器来给所有的work增加记录日志的功能
class Logs:
def __init__(self,log_file,level):
self.log_file=log_file
self.level=level
def __call__(self, func,*args,**kwargs):
def write_logging(*args,**kwargs):
log=f'[{self.level}--时间是:{time.strftime("%H:%M:%S",time.localtime())}]'
print(log)
with open(self.log_file,'a') as f:
f.write(log+'\n')
func(*args,**kwargs)
return write_logging
@Logs(log_file='out.log',level='info')
def work():
print('我在工作')
work()
18、对列表进行乘积运算
对列表进行乘积运算的结果相当于对列表的数据进行复制拷贝到当前列表中
list=[3,6,9,1]
print(list*2)
执行结果:
[3, 6, 9, 1, 3, 6, 9, 1]