1.九宫格
1至9九个数字,横竖都有3个格,思考怎么使每行、每列和对角线上的三数之和都等于15
2.寻找班级里面名字最长的人
我有一串字符串人名:names=(' Kunpen Ji, Li XIAO, Caron Li,'
' Dongjian SHI, Ji ZHAO, Fia YUAN Y,'
' Wenxue DING, Xiu XU, Haiying WANG, Hai LIN,'
' Jey JIANG, Joson WANG E,'
' Aiyang ZHANG, Haiying MENG,'
' Jack ZHANG E, Chang Zhang, Coron ZHANG') ,我希望能做到下面3点:
问题1:排序,按照姓名A-Z排序
问题2:找出里面姓”ZHANG”有几个
问题3:找出名字里面最长的人
names=(' Kunpen Ji, Li XIAO, Caron Li,'
' Dongjian SHI, Ji ZHAO, Fia YUAN Y,'
' Wenxue DING, Xiu XU, Haiying WANG, Hai LIN,'
' Jey JIANG, Joson WANG E,'
' Aiyang ZHANG, Haiying MENG,'
' Jack ZHANG E, Chang Zhang, Coron ZHANG')
def get_names(names):
names1 = []
for x in names:
if(len(x)>=2):
first_name = x.split()[0]
last_name = x.split()[1]
names1.append(first_name+" "+last_name)
else:
names1.append(x)
return names1
names = names.strip().split(',')
count = 0
#排序,按照姓名A-Z排序
print('按照A-Z的排序:{}'.format(sorted(names)))
s = []
length_max = []
#找出里面姓”ZHANG”有几个
for i in names:
if i.upper().find('ZHANG')>0:
count+=1;
s.append(i.strip())
print("一共有{0}个姓zhang,分别为{1}".format(count,s))
#找出名字里面最长的人
names = get_names(sorted(names,key=len,reverse=True))
for x in names:
if len(x) == len(names[0]):
length_max.append(x)
print("名字里面最长的人:{}".format(length_max))
运行结果
按照A-Z的排序:[' Aiyang ZHANG', ' Caron Li', ' Chang Zhang', ' Coron ZHANG', ' Dongjian SHI', ' Fia YUAN Y', ' Hai LIN', ' Haiying MENG', ' Haiying WANG', ' Jack ZHANG E', ' Jey JIANG', ' Ji ZHAO', ' Joson WANG E', ' Li XIAO', ' Wenxue DING', ' Xiu XU', 'Kunpen Ji'] 一共有4个姓zhang,分别为['Aiyang ZHANG', 'Jack ZHANG E', 'Chang Zhang', 'Coron ZHANG'] 名字里面最长的人:['Dongjian SHI', 'Haiying WANG', 'Aiyang ZHANG', 'Haiying MENG']