<form id="dlljd"></form>
        <address id="dlljd"><address id="dlljd"><listing id="dlljd"></listing></address></address>

        <em id="dlljd"><form id="dlljd"></form></em>

          <address id="dlljd"></address>
            <noframes id="dlljd">

              聯系我們 - 廣告服務 - 聯系電話:
              您的當前位置: > 關注 > > 正文

              python實現小寫數字和大寫數字的對應關系

              來源:CSDN 時間:2023-03-14 08:52:24

              已知數字 0 至 9 的中文大寫金額數字,分別是零、壹、貳、叁、肆、伍、陸、柒、捌、玖

              請用代碼實現:

              構建數據容器,用于存儲該對應關系。分別獲取小寫數字 3、7、9 所對應的中文大寫數字分別獲取大寫數字 貳、柒、捌 所對應的小寫數字。


              (資料圖)

              題源:??數字大小寫轉換:存儲和調用對應關系 分析:

              # 大寫數字數據源Upper0 = "零、壹、貳、叁、肆、伍、陸、柒、捌、玖"Upper1 = Upper0.split("、")# 小寫數字數據源num_list = []for number in range(10):num_list.append(number)

              用 split("、")方法將 Upper0以 、分割,封裝到列表容器中(以備后期使用)這里首先小白新建了一個列表并引入了小寫數字作為數據源

              # 封裝函數def Swap_func(lower,upper):    swap = {}    swap[lower] = upper    return swap

              定義了一個函數,名為Sawp_func,形參為 lower, upper:該函數的功能就是:實現對字典進行鍵值對的添加,也是本代碼實現的核心

              m = map(Swap_func, num_list, Upper1)

              調用該函數,并使用 map()內置函數,將結果傳給變量 m這里將 num_list位置參數傳給 lower,Upper1傳給 upper,實現多次對 swap字典的鍵值對的添加,這也就是函數的功能之一:實現對代碼的復用

              info = list(m)print(info)#運行結果:[{0: "零"}, {1: "壹"}, {2: "貳"}, {3: "叁"}, {4: "肆"}, {5: "伍"}, {6: "陸"}, {7: "柒"}, {8: "捌"}, {9: "玖"}]

              成功了,將小寫數字和大寫數字一一對應起來了下一步的任務就是實現查詢的功能

              print("{0:-^74}".format("數字間用英文逗號間隔,輸入結束后,按回車結束"))print("{0:-^80}".format("若為單個數字,請以英文逗號隔開哦"))Input0 = eval(input("請輸入你需要轉換的任意小寫數字:"))print()print()print(f"小寫數字 {Input0} 對應的中文大寫數字為: {[list(info[number].values()) for number in Input0]}")

              這里小白使用了 format()方法對其字符串進行文字排版簡言之就是:"xx {0} xxx {1} xx".format(a, b), x 處原樣輸出, 而 a , b會替換 {}中的 0和 1(也就是所說的格式化)Input0 = eval(input():input():獲取用戶的輸入信息,相當于C語言中的 scanf()函數。eval():用法就是將引號去掉,使引號的內容變成可操作的表達式。print(f""): 作用類似于 format方法,{}是 格式輸出,其余部分是原樣輸出

              最關鍵的來了?。?/p>

              [list(info[number].values()) for number in Input0]

              大家可能對這個不理解,這個其實就是 列表生成器,又稱列表推導式,列表生成式重要的格式如下:[(關于 x 的表達式) for x in 迭代器]

              零,壹,貳,叁,肆,伍,陸,柒,捌,玖 = [i for i in range(10)]

              涉及到序列解包的相關知識: ??Python學習吧-序列解包和序列封包

              這里小白用了不太好的辦法,逐個對漢字重新賦值,因此也證明了python 的強大之處在于支持中文。因此,只要用戶輸入漢字,對應的小寫數字就出來了。

              源代碼如下:

              # 數據源Upper0 = "零、壹、貳、叁、肆、伍、陸、柒、捌、玖"Upper1 = Upper0.split("、")# 封裝函數num_list = []for number in range(10):num_list.append(number)def Swap_func(lower,upper):    swap = {}    swap[lower] = upper    return swapm = map(Swap_func, num_list, Upper1)info = list(m)# [{0: "零"}, {1: "壹"}, {2: "貳"}, {3: "叁"}, {4: "肆"}, {5: "伍"}, {6: "陸"}, {7: "柒"}, {8: "捌"}, {9: "玖"}]print("{0:-^74}".format("數字間用英文逗號間隔,輸入結束后,按回車結束"))print("{0:-^80}".format("若為單個數字,請以英文逗號隔開哦"))Input0 = eval(input("請輸入你需要轉換的任意小寫數字:"))print()print()print(f"小寫數字 {Input0} 對應的中文大寫數字為: {[list(info[number].values()) for number in Input0]}")print()零,壹,貳,叁,肆,伍,陸,柒,捌,玖 = [i for i in range(10)]print("{0:-^63}".format("大寫數字間用英文逗號間隔,輸入結束后,為方便您查詢,請按回車結束鴨~"))print("{0:-^80}".format("若為單個漢字,請以英文逗號隔開哦"))print(f"提示:{"零、壹、貳、叁、肆、伍、陸、柒、捌、玖 (復制任意大寫數字或手動輸入)".replace("、",",")}")Input1 = eval(input("請輸入你需要轉換的任意中文大寫數字:"))Upper_list = [零,壹,貳,叁,肆,伍,陸,柒,捌,玖]print()print()print(f"大寫數字 {[list(info[number].values()) for number in Input1]} 對應的小寫數字為: {Input1}")print()print("{0:-^86}".format("歡迎您下次使用,再見~"))

              運行效果:

              請輸入你需要轉換的任意小寫數字:3,7,9

              運行結果1:

              小寫數字 (3, 7, 9) 對應的中文大寫數字為: [["叁"], ["柒"], ["玖"]]

              繼續輸入:

              請輸入你需要轉換的任意中文大寫數字:貳,柒,捌運行結果2:

              大寫數字 [["貳"], ["柒"], ["捌"]] 對應的小寫數字為: (2, 7, 8)----------歡迎您下次使用,再見~--------------

              好了,以上就是小白的代碼,手工打字,屬實不易,如有幫助,一鍵三連。編程的最大好處就是在于,對于一個問題有多個解法。如果您有更好的方法,請在評論區下留言吧!

              責任編輯:

              標簽:

              相關推薦:

              精彩放送:

              新聞聚焦
              Top 中文字幕在线观看亚洲日韩