インタビューの質問:小数点以下2つのターン十五進法

インポート


クラスDecimalToTwentyFiveHex:
     "" " 
    インタビュー質問:25の10進数16進数
    " "" 
    DEF  __init__ (セルフ、int_ten):

        self.stack = []   #1 ストレージ正の整数値変換部 
        self.flag = なし
        self.num_integer =なし   格納整数部 
        self.num_fractional =なし   小数部分を格納

        IF でisinstance(int_ten、INT):
            self.flag = 1。
            self.num_integer = int_ten
         ELIF でisinstance(int_ten、フロート):
            self.flag = 2
            self.num_integer = INT(STR(int_ten).split(' ' )[0])
            self.num_fractional = INT(STR(int_ten).split(' ')[1。])
         
            self.flag = 3。
             印刷" !正しい番号を入力してください" を返すDEF 変換(自己):
         IF self.flag == 1 
            self.main_conversion(self.num_integer)
            self.stack.reverse()のelif self.flag == 2 

    
        
            self.main_conversion(self.num_integer)
            self.stack.reverse()
            self.small_conversion(self.num_fractional)
        のelif self.flag == 3 パス・
        リターンself.stack 

    デフ __call__(自己、* argsを、** kwargsから):
         リターンself.conversion()

    デフmain_conversion(自己、NUM):
         "" " 
        除25余お取
        反转列表
        :PARAM NUM: リターン
        """ 
        main_int = NUM // 25 
        yu_int = NUM%25 
        self.stack.append( yu_int)
        の場合main_int> = 25 
            self.main_conversion(main_int)
        
            self.stack.append(main_int)

    デフsmall_conversion(自己、NUM):
         "" " 
        乘25取整
        :PARAM NUM: リターン
        """ 
        self.stack。追記(' ' 
        main_int = STR(NUM * 25).split(' ' 
        self.stack.append(main_int [0])ならないでisinstance(NUM * 25 、INT):
            self.small_conversion(INT(main_int [ 1 ]))であれば__name__

         



 == " __main__ " インスタンス化= DecimalToTwentyFiveHex(665.358)#11f.8niiiiiiie 
    num_instantiate = DecimalToTwentyFiveHex(665358.22)  1hee8.5ccccc 
    num_instantiate = DecimalToTwentyFiveHex(665358)#1hee8.5cccccc 
    num_instantiate = DecimalToTwentyFiveHex( '665358')#1hee8。 5ccccccの 
    結果= num_instantiate()
     プリント(結果)
     パス

 

おすすめ

転載: www.cnblogs.com/SBJBA/p/12339876.html