1. 程式人生 > >三道習題(1、將單詞表中由相同字母組成的單詞歸成一類,每類單詞按照單詞的首字母排序,並按 #每類中第一個單詞字典序由大到小排列輸出各個類別。 #輸入格式:按字典序由小到大輸入若干個單詞,每個單詞佔一行,以end結束輸入。)

三道習題(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