三道习题(1、将单词表中由相同字母组成的单词归成一类,每类单词按照单词的首字母排序,并按 #每类中第一个单词字典序由大到小排列输出各个类别。 #输入格式:按字典序由小到大输入若干个单词,每个单词占一行,以end结束输入。)

时间:2023-03-08 16:58:26
#coding=gbk
'''
1、将单词表中由相同字母组成的单词归成一类,每类单词按照单词的首字母排序,并按
#每类中第一个单词字典序由大到小排列输出各个类别。
#输入格式:按字典序由小到大输入若干个单词,每个单词占一行,以end结束输入。
#cinema
#iceman
#maps
#spam
#aboard
#abroad
#end
#输出格式:一类单词一行,类别间单词以空格隔开。
#aboard abroad
#cinema iceman
#maps spam
''' result=[]
'''
while 1:
word=input('请输入单词:')
if word=='.':
break
else:
result.append(word)
'''
result=['nihao','haoni','aohni','haha','aahh','hhaa','ee','rrr','fhg','ghf'] d=dict.fromkeys([''.join(sorted(i)) for i in result])#字典的初始化 不能直接把value值直接职位[],这样所有的value都会一致的变化
print(d)
for k,v in d.items():
d[k]=[] #初始化的字典的value值 for i in result:
print('i:',i)
if ''.join(sorted(i))==k and i not in d[k]:
d[k].append(i) print(d) for i in sorted(d.keys()):
for j in sorted(d[i]):
print(j,end=' ')
print() #2.有一堆100块的石头,2个人轮流随机从中取1-5块,谁取最后一块就谁win,编程实现此过程
print('*'*30) from random import *
a=list(range(1,101))
while len(a)>0:
person_1=[]
person_2=[]
print('最开始的a:',a) num_1=randint(1,5)
if num_1>len(a):
num_1=len(a) person_1=sample(a,num_1)
print('person_1',person_1)
for i in person_1:
a.remove(i)
if len(a)==0:
print('1 赢了!!')
break
print('1处理之后的a:',a)
num_2=randint(1,5)
if num_2>len(a):
num_2=len(a)
person_2=sample(a,num_2)
print('person_2',person_2)
for i in person_2:
a.remove(i)
if len(a)==0:
print('2 赢了!!')
break
print('2之后的a:',a) ##实现一个方法,判断一个正整数是否是2的乘方,比如16是2的4次方,返回True;
#18不是2的乘方,返回False。要求性能尽可能高 from math import sqrt,ceil
n=0
while n<100:
input_num=int(input('请输入数字:')) for i in range(1,ceil(sqrt(input_num))+1): if pow(2,i)==input_num:
print('%d是2的%d次方!!'%(input_num,i))
break
else:
print('不是2的平方数!!')
n+=1