复制过来的代码的换行有问题,但是也不是什么大问题。
后续我会进行补充和修改。
请将如下英文短句根据单词切分成列表:
'The continent of Antarctica is rising. It is due to a geological phenomenon called post-glacial uplift'
并在切分好的列表中找到长度最长的单词。
def changDu(t):return len(t)Jvzi='The continent of Antarctica is rising. It is due to a geological phenomenon called post-glacial uplift'P=Jvzi.split()P.sort(key=changDu,reverse=1)print(P[0])
设置列表L1 = [1, 2, 3, 11, 2, 5, 3, 2, 5, 33, 88]
取出列表中最大的三个值。
L1 = [1, 2, 3, 11, 2, 5, 3, 2, 5, 33, 88]L2 = [] #放最大的三个数L3 = L1.copy() #备份L4 = [] #存放原顺序的L1但是没有L2L1.sort()num=3while num>0:num-=1;L2.append(L1.pop())for x in L3:if( x not in L2):L4.append(x)L1 = L4.copy()print(L1)print(L2)
将('a', 'b', 'c', 'd', 'e') 和 (1,2, 3, 4, 5)两个元组
转成以(1, 2, 3, 4, 5)为key, ('a', 'b', 'c', 'd', 'e') 为value的字典。
a=('a', 'b', 'c', 'd', 'e')b=(1,2, 3, 4, 5)c=zip(a,b)print(dict(c))
计算字典中值为偶数的键的总和
已知字典sample_dict = {'a': 3, 'b': 4, 'c': 5, 'd': 6}
计算字典中值为偶数的键的总和。
sample_dict = {'a': 3, 'b': 4, 'c': 5, 'd': 6}num=0;for p in list(sample_dict.values()):if(p%2==0):num+=1print(num)
编写一个函数max_element,含有一个参数sqc作为形参传入某序列对象,函数会获取序列中元素的最大值。如果序列是字典类型,则取字典对应键的值中的最大值。
完成函数定义后,测试如下3种序列:lst = [-5, 3, -1, -9, 7];s = 'XiaoheiziiKun';d = {'鸣人':59, '佐助': 95, '小樱':90, '小李': 80}
def max_element(sqc):if(type(sqc).__name__=='dict'):#加这个点杠杠name杠杠很重要用于获取类型名list = sqc.values()return max(list)else:list = sqcreturn max(list)if __name__ == '__main__':lst = [-5, 3, -1, -9, 7]s = 'XiaoheiziiKun'd = {'鸣人':59, '佐助': 95, '小樱':90, '小李': 80}print(max_element(lst))print(max_element(s))print(max_element(d))
编写一段代码,来对列表中偶数位置的数字实现乘方运算,再对得到的新列表求和,要求使用 map 函数与 lambda 函数完成。
lst = [1, 3, 5, 7, 9, 11, 13]
def hello(list1):#对列表偶数位乘方然后将其组合成新列表并返回新列表的和list2=[]a=True#为什么我这里用个a而不是判断index%2是否==0呢?我是为了防止列表中有重复的情况for aaa in list1:if a:list2.append(aaa)a = not alist3=list(map(lambda x:x**2,list2))return sum(list3)if __name__ == '__main__':lst = [1, 3, 5, 7, 9, 11, 13]print(hello(lst))
利用递归函数调用方式,将所输入的字符,以相反顺序打印出来。
def hello(st):if(len(st)<=1):#结束递归< p="">print(st)else:print(st[-1:],end='')st=st[:-1]hello(st)if __name__ == '__main__':s="1234567"hello(s)
定义一个汽车类Car,使用__init__方法完成属性赋值,类中具有属性:颜色color、零百加速acc0100、品牌型号brandtype,并在类中定义一个run方法,使该方法打印输出该辆车的零百加速时间“xxx颜色的xxx零百加速时间为xxx秒”。
并利用Car类实例化两个对象,白色white的Audi_RS7零百加速3.4,以及蓝色blue的BMW_M4零百加速3.9。然后分别调用run方法打印出属性值。
class Car():'''汽车类'''def __init__(self,color,acc0100,brandtype):#颜色color、零百加速acc0100、品牌型号brandtype,self.color=colorself.acc0100=acc0100self.brandtype=brandtypedef run(self):print("{1}牌{0}色的汽车,零百加速时间为{2}秒,".format(self.color,self.acc0100,self.brandtype))if __name__ == '__main__':car1=Car("白","Audi_RS7",3.4)car2=Car("蓝","BMW_M4",3.9)car1.run()car2.run()
定义一个Point类,用init赋值自身属性x,y。再定义三个方法用于显示坐标location、移动坐标moveto、计算与某一点的距离distance。
location直接显示该的坐标。
moveto传入两个参数ax,ay表示移动后的位置坐标,再打印出移动后的坐标点。
distance用于计算与某点的距离,传入两个参数tx,ty表示另一点的坐标,再打印计算后两点间的距离。注意,两点间的距离用欧氏距离定理计算,即
,可以使用math标准库中的sqrt实现。
定义完成后,设置A点(9, 13),B点(20, 24),后把A点移动至(15, 19),再计算它与B点之间的距离。
from math import sqrtclass Point():'''点类'''def __init__(self,x,y):#有x和y坐标还要有三个方法:显示坐标,移动坐标,计算两点间距离self.x=xself.y=ydef location(self):print("(",self.x,",",self.y,")",sep="")def moveto(self,ax,ay):self.x=axself.y=aydef distance(self,tx,ty):value=sqrt((self.x-tx)**2+(self.y-ty)**2)print(value)if __name__ == '__main__':A=Point(9,13)print("A:",end="")A.location()B=Point(20,24)print("B:",end="")B.location()A.moveto(15,19)print("A:",end="")A.location()print("两点间的距离是:",end="")A.distance(B.x,B.y)
继承练习:
定义银行卡类Bank:自身属性赋值卡号numID、密码pwd、姓名name、余额balance。方法:取款withdraw,暂不设置方法内容,用pass代替
子类1:
本行卡This_Bank,拥有方法1:取款withdraw复写父类方法,传入金额amount,相应在方法中减少余额balance,并打印输出余额。
方法2:转账transfer,同样传入金额amount,相应在方法中减少余额balance,并在转入账户中增加相应金额,并打印输出本卡余额。
子类2:
它行卡: 与本行卡拥有相同的两个方法,但是由于跨行需收取手续费,因此在所有的取款和转账行为中都收取2元手续费。
创建实例card1和card2。
card1设置为本行卡,卡号202401,密码123,持卡人Jay,余额10000。
card2设置为它行卡,卡号202402,密码321,持卡人Eason,余额9000。
card1取款5000,card2给card1转账3000.
class Bank():'''银行卡类(不会实例化这个的)'''def __init__(self,numID,pwd,name,balance):#四个属性,一个方法self.numID=numIDself.pwd=pwdself.name=nameself.balance=balancedef withdraw(self):passclass This_Bank(Bank):'''银行卡子类1'''def withdraw(self,amount):self.balance-=amountprint("取了",amount,"余额还剩:",self.balance)def transfer(self,amount,other):self.balance-=amountother.balance+=amountprint("给",other.name,"转了",amount,"余额还剩: ",self.balance,sep="")class That_Bank(This_Bank):'''银行卡子类2'''def withdraw(self,amount):self.balance-=2super().withdraw(amount)def transfer(self,amount,other):self.balance-=2super().transfer(amount,other)if __name__ == '__main__':#实际上我有个疑问,在C++中有的父类就会有纯虚函数之类的来限制和规范子类,像这题里边的Bank类中的withdraw是否也有相似的作用呢?card1=This_Bank(202401,123,"Jay",10000)card2=That_Bank(202402,321,"Eason",9000)card1.withdraw(5000)card2.transfer(3000,card1)