• 三道习题(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
  • 相关阅读:
    HashMap底层实现原理(JDK1.8)源码分析
    JVM总结
    初识Nosql
    线程池总结
    Linux中常用操作命令
    JAVA—集合框架
    TeKtronix TDS210数字示波器使用简介
    硬盘的物理结构
    Unicode 与 UTF
    I2C串行总线
  • 原文地址:https://www.cnblogs.com/xiaoxiao075/p/10143878.html
Copyright © 2020-2023  润新知