python2.x实现人民币转大写人民币

yipeiwu_com5年前Python基础

本文实例为大家分享了python实现人民币转大写人民币的具体代码,供大家参考,具体内容如下

直接上代码:

# -*- coding: utf-8 -*-
def changenum( change_number ):
 format_num = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]
 format_name = ["分", "角", "元",
    "拾","百","千","万",
    "拾","百","千","亿",
    "拾","百","千","万",
    "拾","百","千","兆"]

 if type( change_number ) == str:
  if '.' in change_number:
   try: change_number = float( change_number )
   except: raise ValueError, '%s can\'t change'%change_number
  else:
   try: change_number = int( change_number )
   except: raise ValueError, '%s can\'t change'%change_number

 if type( change_number ) == float:
  real_numbers = []
  for i in range( len( format_name ) - 3, -3, -1 ):
   if change_number >= 10 ** i or i < 1:
    real_numbers.append( int( round( change_number/( 10**i ), 2)%10 ) )

 elif isinstance( change_number, (int, long) ):
  real_numbers = [ int( i ) for i in str( change_number ) + '00' ]

 else:
  raise ValueError, '%s can\'t change'%change_number

 zflag = 0      
 start = len(real_numbers) - 3
 change_words = []
 for i in range(start, -3, -1): 
  if 0 <> real_numbers[start-i] or len(change_words) == 0:
   if zflag:
    change_words.append(format_num[0])
    zflag = 0
   change_words.append( format_num[ real_numbers[ start - i ] ] )
   change_words.append(format_name [i+2])

  elif 0 == i or (0 == i%4 and zflag < 3): 
   change_words.append(format_name [i+2])
   zflag = 0
  else:
   zflag += 1

 if change_words[-1] not in (format_name[0], format_name[1]):
  change_words.append("整")

 return ''.join(change_words)
#测试
# print changenum(865324.98)
#查看输出的结果是否正确

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python基于xmlrpc实现二进制文件传输的方法

本文实例讲述了python基于xmlrpc实现二进制文件传输的方法。分享给大家供大家参考。具体实现方法如下: 服务器端: from SimpleXMLRPCServer import...

解决python3 Pycharm上连接数据库时报错的问题

最近在学习python。 今天在学习python连接Mysql数据库时报错: AttributeError: 'NoneType' object has no attribute '...

浅析python 内置字符串处理函数的使用方法

一、lower():将大写字母全部转为小写字母。如: 复制代码 代码如下:name='G'b=name.lower() 二、title”":将字符串转化为标题,即所有单词的首字母大写,其...

Django中cookie的基本使用方法示例

前言 基于 Internet的各种服务系统应运而生,建立商业站点或者功能比较完善的个人站点,常常需要记录访问者的一些信息;论坛作为 Internet发展的产物之一,在 Internet...

Python的对象传递与Copy函数使用详解

1、对象引用的传值或者传引用 Python中的对象赋值实际上是简单的对象引用。也就是说,当你创建一个对象,然后把它赋值给另一个变量的时候,Python并没有拷贝这个对象,而是拷贝了这个对...