zoukankan      html  css  js  c++  java
  • 数字转人民币读法-python3

     """                                                                
      2 把一个浮点数分解成证书备份和小数部分
      3 """       
      4 def divide(num):
      5     intnum = int(num)
      6     floatnum = int(num) - intnum
      7     return (str(intnum),str(floatnum))
      8           
      9 han_list = ["","","","","","","","","",""]
     10 unit_list = ["","",""]
     11           
     12 def convert(num):
     13     result = ""
     14     num_len = len(num)
     15     for i in range(num_len):
     16         number = int(num[i])
     17         if num_len == 4 and number != 0 and i <= 2:
     18             result += han_list[number] + unit_list[i]
     19         elif num_len == 3 and number != 0 and i <2:
     20             result += han_list[number] + unit_list[i + 1]
     21         elif num_len == 2 and number != 0 and i <1:
     22             result += han_list[number] + unit_list[i + 2]
     23         else:
     24             result += han_list[number]
     25     return result
     26 def convert2(num):
     27     lennum = len(num)
     28     if lennum > 12:
     29         print("数字太大无法转换!")
     30         return
     31     elif lennum > 8:
     32         return convert(num[:-8]) + "亿"+
     33                 convert(num[-8:-4]) + ""+
     34                 convert(num[-4:])
     35     elif lennum > 4:
     36         return convert(num[:-4]) + ""+
     37                 convert(num[-4:])
     38     else: 
     else:   
     39         return convert(num)
     40 number = input()
     41 intnum,floatnum = divide(number)
     42 result = convert2(intnum)+ ""
     43             
     44 print(result)         

    运行结果

    123456789
    壹亿贰千叁佰肆拾伍万陆千柒佰捌拾玖元
    一开始想用if嵌套来实现这个功能,后俩发现程序量过于大,所以就换了一种思如,附上代码,这个代码只实现了8为以上数字的转换

     """
      2 问题描述
      3 将一个数字转换成人命币的读法,并且数字要求转换为对应的大写数字
      4 思路分析
      5 1.详见其整数和小数分离出来
      6 2.中国习惯将数字每四位划分为一个区间
      7 3.
      8 """
      9 list1 = []
     10 def sever_number(number):
     11     int_number = int(number)
     12     float_number =int(number) - int_number
     13     #将其转化为字符串,以进行切片                                  
     14     return (str(int_number),str(float_number))
     15 list_han = ["","","","","","","","","",""]
     16 list_unit = ["","",""]
     17  
     18 def hanstr(number):
     19     global list1
     20     if len(number) > 8:
     21         sever1 = number[:-8]
     22         for i in sever1:
     23             num = int(i)
     24             a = list_han[num]
     25             list1.append(a)
     26             if sever1.index(i) == (len(sever1) - 1):
     27                 list1.append(list_unit[0])
     28                 sever2 = number[-8:-4]
     29                 for i in sever2:
     30                     num = int(i)
     31                     a = list_han[num]
     32                     list1.append(a)
     33                     if sever2.index(i) == (len(sever2) - 1):
     34                         sever3 = number[-4:]
     35                         for i in sever3:
     36                             num = int(i)
     37                             a = list_han[num]
     38                             list1.append(a)
     39                         return
     40 num = input()
     41 int_number,float_number = sever_number(num)
     42 hanstr(int_number)
     43 for i in list1:
     44     print(i,end = "")
     45 print("
    ")
     46  
     47  
    ~                                   
    笨鸟先飞
  • 相关阅读:
    Ghost博客安装
    PHP变量作用域
    ssh文件传输命令:sz与rz命令
    excel怎么固定第一行
    memcache和redis区别
    Memcache分布式部署方案
    Memcache服务器端参数说明
    Memcache基础教程
    在Windows下安装Memcached
    MySQL体系结构和存储引擎概述
  • 原文地址:https://www.cnblogs.com/zoutingrong/p/13880847.html
Copyright © 2011-2022 走看看