• 数字转人民币读法-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  
    ~                                   
    笨鸟先飞
  • 相关阅读:
    statement 对象执行sql语句
    复习 利用表单传递参数
    多个jsp页面共享Java bean
    Rquest对象代码练习
    Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例
    oracle基本建表语句
    Oracle存储过程创建及调用
    Oracle存储过程(增、删、改)写法、oracle执行存储过程
    ExecuteNonQuery()的用法
    WinForm里面连接Oracle数据库
  • 原文地址:https://www.cnblogs.com/zoutingrong/p/13880847.html
Copyright © 2020-2023  润新知