本文实例为大家分享了python实现人民币转大写人民币的具体代码,供大家参考,具体内容如下
直接上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# -*- 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) #查看输出的结果是否正确 |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/haeasringnar/article/details/79523836