乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      如何把2274587.84如何快速的轉(zhuǎn)換為大寫:貳佰貳拾柒萬肆仟伍佰捌拾柒元捌角肆分?(下篇)

       Python進階者 2023-07-17 發(fā)布于廣東
      春江花朝秋月夜,往往取酒還獨傾。

      大家好,我是皮皮。

      一、前言

      前幾天在Python黃金群【莫生氣】問了一個Python數(shù)據(jù)處理的問題,需求如下:

      大佬們,請教一個問題,2274587.84如何快速的轉(zhuǎn)換為大寫:貳佰貳拾柒萬肆仟伍佰捌拾柒元捌角肆分?有沒有工具或者網(wǎng)頁啥的?不一定要Python實現(xiàn)。

      使用百度上查到的代碼,似乎不太好用,

      def num2chinese(num):
          chinese_num = ["零""壹""貳""參""肆""伍""陸""柒""捌""玖"]
          chinese_unit = ["""拾""佰""仟""萬""億"]
          num_str = str(num)
          num_len = len(num_str)
          chinese_str = ''
          zero_flag = False
          for i in range(num_len):
              j = int(num_str[i])
              if i == 8:
                  zero_flag = True
              else:
                  if zero_flag:
                      chinese_str += chinese_num[0]
                      zero_flag = False
                  chinese_str += chinese_num[j] + chinese_unit[num_len - i - 1]

          if zero_flag:
              chinese_str += chinese_num[0]
          return chinese_str


      if __name__ == '__main__':
          print(num2chinese(135496))

      代碼運行之后出錯,和實際預期的結(jié)果還是有差距的。

      而且一旦假如小數(shù),比方說有角分這樣的,直接報錯了。

      二、實現(xiàn)過程

      后來在訊飛星火上問到了一個答案,代碼如下所示:


      def num_to_chinese(num):

          chinese_num = {

              0: "零",

              1: "一",

              2: "二",

              3: "三",

              4: "四",

              5: "五",

              6: "六",

              7: "七",

              8: "八",

              9: "九"

          }

          chinese_unit = ["""十""百""千""萬""億"]

          chinese_str = ""

          unit_index = 0

          for i in str(num):

              if i.isdigit():

                  chinese_str += chinese_num[int(i)] + chinese_unit[unit_index]

                  unit_index += 1

              else:

                  chinese_str += i

          return chinese_str.strip("零") or "零"



      num = 2274587.84

      result = num_to_chinese(num)

      print(result)

      代碼花里胡哨的,但是解決不了問題,一跑就出現(xiàn)數(shù)組越界的錯誤,嘗試調(diào)教,說他錯了,他仍然給你舊代碼,甚至還給你一個不沾邊的代碼,整無語了。

      后來問了Zelinna,給的代碼看上去像那么回事,代碼如下:

      這個需求可以使用Python的數(shù)字轉(zhuǎn)中文工具——`chinese_converter`來實現(xiàn),以下是用Python代碼實現(xiàn)這個功能的示例。

      ```python
      # 首先需要安裝 chinese_converter 包,運行以下指令即可
      # pip install chinese_converter

      from chinese_converter import num_to_chinese

      num = 2274587.84
      num_str = str(int(num))  # 轉(zhuǎn)換為整型并轉(zhuǎn)換為字符串
      num_chinese_upper = num_to_chinese(num_str, False, True) + '元' # 轉(zhuǎn)換為大寫并加上“元”
      # 去掉無效小數(shù)位
      decimal = round(num - int(num), 2) # 取小數(shù)位并保留兩位
      if decimal > 0:
          decimal_str = str(decimal)[2:]
          # 轉(zhuǎn)換小數(shù)部分的數(shù)字
          for i, d in enumerate(decimal_str):
              num_chinese_upper += num_to_chinese(int(d)) + ('角' if i == 0 else '分')
      print(num_chinese_upper)


      # 輸出結(jié)果為:貳佰貳拾柒萬肆仟五佰八拾七元捌角四分。

      # 運行成功可以將任意數(shù)字轉(zhuǎn)為大寫中文數(shù)字。如果你在開發(fā)中需要經(jīng)常進行數(shù)字和中文之間的轉(zhuǎn)換,這個工具可以提高你的工作效率。

      不過安裝這個庫之后,竟然報錯,說里邊對應(yīng)的方法竟然不存在,這。。。很尷尬,還占用我內(nèi)存,反手就uninstall掉了。

      最后用了Excel設(shè)置單元格格式,好家伙,找到數(shù)據(jù),然后右鍵-->設(shè)置單元格格式-->特殊-->人民幣大寫,就完事了,而且多行數(shù)據(jù)的話,直接一個填充就完事了,比問C老師,Z老師,K老師快得多!

      順利地解決了粉絲的問題。

      后來【甯同學】,還給了一個方法。搜狗輸入法,輸入v+數(shù)字直接就是了。

      三、總結(jié)

      大家好,我是皮皮。這篇文章主要盤點了一個Python實戰(zhàn)的問題,文中針對該問題,給出了具體的解析和代碼實現(xiàn),幫助粉絲順利解決了問題。

      最后感謝粉絲【莫生氣】提問,感謝【巭孬嫑勥烎】給出的思路和代碼解析,感謝【Ineverleft】、【瑜亮老師】等人參與學習交流。

      【提問補充】溫馨提示,大家在群里提問的時候??梢宰⒁庀旅鎺c:如果涉及到大文件數(shù)據(jù),可以數(shù)據(jù)脫敏后,發(fā)點demo數(shù)據(jù)來(小文件的意思),然后貼點代碼(可以復制的那種),記得發(fā)報錯截圖(截全)。代碼不多的話,直接發(fā)代碼文字即可,代碼超過50行這樣的話,發(fā)個.py文件就行。


      ------------------- End -------------------

        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多