一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯(lián)系我們 - 廣告服務(wù) - 聯(lián)系電話:
您的當前位置: > 關(guān)注 > > 正文

python實現(xiàn)小寫數(shù)字和大寫數(shù)字的對應(yīng)關(guān)系

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

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

請用代碼實現(xiàn):

構(gòu)建數(shù)據(jù)容器,用于存儲該對應(yīng)關(guān)系。分別獲取小寫數(shù)字 3、7、9 所對應(yīng)的中文大寫數(shù)字分別獲取大寫數(shù)字 貳、柒、捌 所對應(yīng)的小寫數(shù)字。


(資料圖)

題源:??數(shù)字大小寫轉(zhuǎn)換:存儲和調(diào)用對應(yīng)關(guān)系 分析:

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

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

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

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

m = map(Swap_func, num_list, Upper1)

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

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

成功了,將小寫數(shù)字和大寫數(shù)字一一對應(yīng)起來了下一步的任務(wù)就是實現(xiàn)查詢的功能

print("{0:-^74}".format("數(shù)字間用英文逗號間隔,輸入結(jié)束后,按回車結(jié)束"))print("{0:-^80}".format("若為單個數(shù)字,請以英文逗號隔開哦"))Input0 = eval(input("請輸入你需要轉(zhuǎn)換的任意小寫數(shù)字:"))print()print()print(f"小寫數(shù)字 {Input0} 對應(yīng)的中文大寫數(shù)字為: {[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()函數(shù)。eval():用法就是將引號去掉,使引號的內(nèi)容變成可操作的表達式。print(f""): 作用類似于 format方法,{}是 格式輸出,其余部分是原樣輸出

最關(guān)鍵的來了!!

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

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

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

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

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

源代碼如下:

# 數(shù)據(jù)源Upper0 = "零、壹、貳、叁、肆、伍、陸、柒、捌、玖"Upper1 = Upper0.split("、")# 封裝函數(shù)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("數(shù)字間用英文逗號間隔,輸入結(jié)束后,按回車結(jié)束"))print("{0:-^80}".format("若為單個數(shù)字,請以英文逗號隔開哦"))Input0 = eval(input("請輸入你需要轉(zhuǎn)換的任意小寫數(shù)字:"))print()print()print(f"小寫數(shù)字 {Input0} 對應(yīng)的中文大寫數(shù)字為: {[list(info[number].values()) for number in Input0]}")print()零,壹,貳,叁,肆,伍,陸,柒,捌,玖 = [i for i in range(10)]print("{0:-^63}".format("大寫數(shù)字間用英文逗號間隔,輸入結(jié)束后,為方便您查詢,請按回車結(jié)束鴨~"))print("{0:-^80}".format("若為單個漢字,請以英文逗號隔開哦"))print(f"提示:{"零、壹、貳、叁、肆、伍、陸、柒、捌、玖 (復制任意大寫數(shù)字或手動輸入)".replace("、",",")}")Input1 = eval(input("請輸入你需要轉(zhuǎn)換的任意中文大寫數(shù)字:"))Upper_list = [零,壹,貳,叁,肆,伍,陸,柒,捌,玖]print()print()print(f"大寫數(shù)字 {[list(info[number].values()) for number in Input1]} 對應(yīng)的小寫數(shù)字為: {Input1}")print()print("{0:-^86}".format("歡迎您下次使用,再見~"))

運行效果:

請輸入你需要轉(zhuǎn)換的任意小寫數(shù)字:3,7,9

運行結(jié)果1:

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

繼續(xù)輸入:

請輸入你需要轉(zhuǎn)換的任意中文大寫數(shù)字:貳,柒,捌運行結(jié)果2:

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

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

責任編輯:

標簽:

相關(guān)推薦:

精彩放送:

新聞聚焦
Top 主站蜘蛛池模板: 于都县| 怀来县| 闸北区| 龙门县| 瑞金市| 锦州市| 苏尼特左旗| 安化县| 班玛县| 舟曲县| 顺昌县| 佳木斯市| 长白| 上林县| 拉孜县| 枝江市| 故城县| 万源市| 兖州市| 讷河市| 法库县| 江口县| 九龙坡区| 四会市| 依兰县| 磐石市| 丹江口市| 泰州市| 西平县| 彭泽县| 田东县| 株洲县| 景东| 安岳县| 股票| 龙州县| 佳木斯市| 桂林市| 巴里| 卢湾区| 盐边县|