复制过来的代码的换行有问题,但是也不是什么大问题。
后续我会进行补充和修改。
请将如下英文短句根据单词切分成列表:
'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但是没有L2
L1.sort()
num=3
while 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+=1
print(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 = sqc
return 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 a
list3=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=color
self.acc0100=acc0100
self.brandtype=brandtype
def 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 sqrt
class Point():
'''点类'''
def __init__(self,x,y):
#有x和y坐标还要有三个方法:显示坐标,移动坐标,计算两点间距离
self.x=x
self.y=y
def location(self):
print("(",self.x,",",self.y,")",sep="")
def moveto(self,ax,ay):
self.x=ax
self.y=ay
def 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=numID
self.pwd=pwd
self.name=name
self.balance=balance
def withdraw(self):
pass
class This_Bank(Bank):
'''银行卡子类1'''
def withdraw(self,amount):
self.balance-=amount
print("取了",amount,"余额还剩:",self.balance)
def transfer(self,amount,other):
self.balance-=amount
other.balance+=amount
print("给",other.name,"转了",amount,"余额还剩: ",self.balance,sep="")
class That_Bank(This_Bank):
'''银行卡子类2'''
def withdraw(self,amount):
self.balance-=2
super().withdraw(amount)
def transfer(self,amount,other):
self.balance-=2
super().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)