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

#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

猜你喜欢

转载自www.cnblogs.com/xiaoxiao075/p/10143878.html