Python入门实战训练(二)

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']

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值