zoukankan      html  css  js  c++  java
  • 三道习题(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
  • 相关阅读:
    第三方驱动备份与还原
    Greenplum 解决 gpstop -u 指令报错
    yum安装(卸载)本地rpm包的方法(卸载本地安装的greenplum 5.19.rpm)
    Java JUC(java.util.concurrent工具包)
    netty 详解(八)基于 Netty 模拟实现 RPC
    netty 详解(七)netty 自定义协议解决 TCP 粘包和拆包
    netty 详解(六)netty 自定义编码解码器
    netty 详解(五)netty 使用 protobuf 序列化
    netty 详解(四)netty 开发 WebSocket 长连接程序
    netty 详解(三)netty 心跳检测机制案例
  • 原文地址:https://www.cnblogs.com/xiaoxiao075/p/10143878.html
Copyright © 2011-2022 走看看