[Python] 从《千字文》中随机挑选汉字

背景

千字文 中包含了一千个不同的汉字。开头几句如下图所示 ⬇️

我想到可以用 Python\text{Python} Python 程序从《千字文》中随机挑选汉字。于是打算实战一下。

正文

要解决的问题

如何获取《千字文》全文

千字文 中提供了《千字文》全文,把它的内容复制到本地后,再做些简单的处理(例如可以先按照 \t 对每行的内容进行 split\text{split} split 操作,然后把 \u3000 字符替换为 ""),就可以得到《千字文》全文。

如何从中随机挑选汉字

千字文 中提供的内容共分为 125125 125 行,每一行有 88 8 个汉字。我们可以先随机挑选一行,然后在从这一行的 88 8 个汉字里随机挑选一个。

代码

解决了以上两个问题后,就可以写出完整的代码了 ⬇️

python 复制代码
import random

original_text = [
    "天地玄黃宇宙洪荒",
    "日月盈昃辰宿列張",
    "寒來暑往秋收冬藏",
    "閏餘成歲律呂調陽",
    "雲騰致雨露結為霜",
    "金生麗水玉出崑岡",
    "劍號巨闕珠稱夜光",
    "果珍李柰菜重芥薑",
    "海鹹河淡鱗潛羽翔",
    "龍師火帝鳥官人皇",
    "始制文字乃服衣裳",
    "推位讓國有虞陶唐",
    "弔民伐罪周發殷湯",
    "坐朝問道垂拱平章",
    "愛育黎首臣伏戎羌",
    "遐邇壹體率賓歸王",
    "鳴鳳在竹白駒食場",
    "化被草木賴及萬方",
    "蓋此身髪四大五常",
    "恭惟鞠養豈敢毀傷",
    "女慕貞潔男效才良",
    "知過必改得能莫忘",
    "罔談彼短靡恃己長",
    "信使可復器欲難量",
    "墨悲絲染詩贊羔羊",
    "景行維賢克念作聖",
    "德建名立形端表正",
    "空谷傳聲虛堂習聽",
    "禍因惡積福緣善慶",
    "尺璧非寶寸陰是競",
    "資父事君曰嚴與敬",
    "孝當竭力忠則盡命",
    "臨深履薄夙興溫凊",
    "似蘭斯馨如松之盛",
    "川流不息淵澄取映",
    "容止若思言辭安定",
    "篤初誠美慎終宜令",
    "榮業所基籍甚無竟",
    "學優登仕攝職從政",
    "存以甘棠去而益詠",
    "樂殊貴賤禮別尊卑",
    "上和下睦夫唱婦隨",
    "外受傅訓入奉母儀",
    "諸姑伯叔猶子比兒",
    "孔懷兄弟同氣連枝",
    "交友投分切磨箴規",
    "仁慈隱惻造次弗離",
    "節義廉退顛沛匪虧",
    "性靜情逸心動神疲",
    "守真志滿逐物意移",
    "堅持雅操好爵自縻",
    "都邑華夏東西二京",
    "背邙面洛浮渭據涇",
    "宮殿盤鬱樓觀飛驚",
    "圖寫禽獸畫彩仙靈",
    "丙舍傍啟甲帳對楹",
    "肆筵設席鼓瑟吹笙",
    "升階納陛弁轉疑星",
    "右通廣內左達承明",
    "既集墳典亦聚群英",
    "杜稿鐘隸漆書壁經",
    "府羅將相路俠槐卿",
    "戶封八縣家給千兵",
    "高冠陪輦驅轂振纓",
    "世祿侈富車駕肥輕",
    "策功茂實勒碑刻銘",
    "磻溪伊尹佐時阿衡",
    "奄宅曲阜微旦孰營",
    "桓公匡合濟弱扶傾",
    "綺回漢惠說感武丁",
    "俊乂密勿多士寔寧",
    "晉楚更霸趙魏困橫",
    "假途滅虢踐土會盟",
    "何遵約法韓弊煩刑",
    "起翦頗牧用軍最精",
    "宣威沙漠馳譽丹青",
    "九州禹跡百郡秦併",
    "岳宗泰岱禪主云亭",
    "雁門紫塞雞田赤城",
    "昆池碣石鉅野洞庭",
    "曠遠綿邈巖岫杳冥",
    "治本於農務茲稼穡",
    "俶載南畝我藝黍稷",
    "稅熟貢新勸賞黜陟",
    "孟軻敦素史魚秉直",
    "庶幾中庸勞謙謹敕",
    "聆音察理鑒貌辨色",
    "貽厥嘉猷勉其祗植",
    "省躬譏誡寵增抗極",
    "殆辱近恥林皋幸即",
    "兩疏見機解組誰逼",
    "索居閑處沉默寂寥",
    "求古尋論散慮逍遙",
    "欣奏累遣慼謝歡招",
    "渠荷的歷園莽抽條",
    "枇杷晚翠梧桐蚤凋",
    "陳根委翳落葉飄搖",
    "游鵾獨運凌摩絳霄",
    "耽讀玩市寓目囊箱",
    "易輶攸畏屬耳垣墻",
    "具膳餐飯適口充腸",
    "飽飫烹宰饑厭糟糠",
    "親戚故舊老少異糧",
    "妾御績紡侍巾帷房",
    "紈扇圓絜銀燭煒煌",
    "晝眠夕寐藍筍象床",
    "弦歌酒宴接杯舉觴",
    "矯手頓足悅豫且康",
    "嫡後嗣續祭祀烝嘗",
    "稽顙再拜悚懼恐惶",
    "箋牒簡要顧答審詳",
    "骸垢想浴執熱願涼",
    "驢騾犢特駭躍超驤",
    "誅斬賊盜捕獲叛亡",
    "布射僚丸嵇琴阮嘯",
    "恬筆倫紙鈞巧任釣",
    "釋紛利俗竝皆佳妙",
    "毛施淑姿工顰妍笑",
    "年矢每催曦暉朗曜",
    "璇璣懸斡晦魄環照",
    "指薪修祜永綏吉劭",
    "矩步引領俯仰廊廟",
    "束帶矜莊徘徊瞻眺",
    "孤陋寡聞愚蒙等誚",
    "謂語助者焉哉乎也",
]

random_line = random.choice(original_text)
random_index = random.randint(0, len(random_line) - 1)
print(random_line[random_index])

运行效果

请将上一小节提供的完整代码保存为 pick_random_chinese_character.py\text{pick\_random\_chinese\_character.py} pick_random_chinese_character.py。用下方的命令可以运行 pick_random_chinese_character.py\text{pick\_random\_chinese\_character.py} pick_random_chinese_character.py

bash 复制代码
python3 pick_random_chinese_character.py

示例效果如下 ⬇️

参考资料

相关推荐
飘尘4 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
浏览器工程师5 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
行者全栈架构师5 小时前
Maven dependency:tree 的 8 个高级用法
java·后端
Chenyiax5 小时前
从一次请求看懂 OkHttp:架构、调度与连接管理
后端
爱勇宝6 小时前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员
cup116 小时前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
AskHarries6 小时前
工具失败时怎么办:重试、回滚、人工确认和风险提示
后端·程序员
苏三说技术8 小时前
Claude Code从失控到起飞,只用了这些技巧
后端