利用python3隨機(jī)生成中文字符的實(shí)現(xiàn)方法
前言
運(yùn)行環(huán)境在Python3.6下,Python2的解決方案網(wǎng)上有很多.,想學(xué)習(xí)python2實(shí)現(xiàn)的朋友們可以參考這篇文章:http://www.fzitv.net/article/34884.htm,下面來(lái)一起看看詳細(xì)的介紹吧。
第一種方法:Unicode碼
在unicode碼中,漢字的范圍是(0x4E00, 9FBF)
import random def Unicode(): val = random.randint(0x4e00, 0x9fbf) return chr(val)
這個(gè)方法比較簡(jiǎn)單,但是有個(gè)小問(wèn)題,unicode碼中收錄了2萬(wàn)多個(gè)漢字,包含很多生僻的繁體字.
第二種方法:GBK2312
gbk2312對(duì)字符的編碼采用兩個(gè)字節(jié)相組合,第一個(gè)字節(jié)的范圍是0xB0-0xF7, 第二個(gè)字節(jié)的范圍是0xA1-0xFE.
對(duì)GBK2312編碼方式詳細(xì)的解釋請(qǐng)參看GBK2312編碼
import random
def GBK2312():
head = random.randint(0xb0, 0xf7)
body = random.randint(0xa1, 0xfe)
val = f'{head:x}{body:x}'
str = bytes.fromhex(val).decode('gb2312')
return str
GBK2312收錄了6千多常用漢字.兩種方法的取舍就看需求了.
下面來(lái)給大家詳細(xì)介紹下關(guān)于Python基礎(chǔ)知識(shí)之encode和decode函數(shù)的相關(guān)內(nèi)容,通過(guò)下面的簡(jiǎn)單介紹,對(duì)大家理解上面的實(shí)現(xiàn)方法具有一定的參考價(jià)值,下面來(lái)一起看看吧。
ptyhon encode和decode函數(shù)
Python2.x中默認(rèn)的編碼的基礎(chǔ)類(lèi)型是unicode編碼的類(lèi)型,在Python3.x才轉(zhuǎn)化為基于unicode的字符串。
那么我們?cè)赑ython2.x的學(xué)習(xí)中就會(huì)遇到各種各樣的編碼問(wèn)題,encode和decode函數(shù)就是很好的幫我們解決這樣問(wèn)題的工具。
下面的程序中有詳細(xì)的介紹和例子!~
在Python2.x中:
u = u'中文' #顯示指定unicode類(lèi)型對(duì)象u
str = u.encode('gb2312') #以gb2312編碼對(duì)unicode對(duì)像進(jìn)行編碼
str1 = u.encode('gbk') #以gbk編碼對(duì)unicode對(duì)像進(jìn)行編碼
str2 = u.encode('utf-8') #以u(píng)tf-8編碼對(duì)unicode對(duì)像進(jìn)行編碼
u1 = str.decode('gb2312')#以gb2312編碼對(duì)字符串str進(jìn)行解碼,以獲取unicode
u2 = str.decode('utf-8')#如果以u(píng)tf-8的編碼對(duì)str進(jìn)行解碼得到的結(jié)果,將無(wú)法還原原來(lái)的unicode類(lèi)型
在Python3.x中:
u = '中文' #指定字符串類(lèi)型對(duì)象u
str = u.encode('gb2312') #以gb2312編碼對(duì)u進(jìn)行編碼,獲得bytes類(lèi)型對(duì)象str
u1 = str.decode('gb2312')#以gb2312編碼對(duì)字符串str進(jìn)行解碼,獲得字符串類(lèi)型對(duì)象u1
u2 = str.decode('utf-8')#如果以u(píng)tf-8的編碼對(duì)str進(jìn)行解碼得到的結(jié)果,將無(wú)法還原原來(lái)的字符串內(nèi)容
但是我們?cè)谧x取、寫(xiě)入文件的時(shí)候就要注意以文件的格式來(lái)判斷用什么方式來(lái)操作了,txt文件默認(rèn)都是utf-8當(dāng)然你也可以自己設(shè)定編碼格式。
我們?cè)趯?duì)txt文件進(jìn)行操作時(shí),最好都將編碼格式轉(zhuǎn)化為utf-8來(lái)方便操作吧!~
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- python3 requests中使用ip代理池隨機(jī)生成ip的實(shí)例
- python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個(gè)數(shù)實(shí)例
- Python隨機(jī)生成一個(gè)6位的驗(yàn)證碼代碼分享
- Python隨機(jī)生成身份證號(hào)碼及校驗(yàn)功能
- Python隨機(jī)生成手機(jī)號(hào)、數(shù)字的方法詳解
- python 隨機(jī)生成10位數(shù)密碼的實(shí)現(xiàn)代碼
- Python實(shí)現(xiàn)隨機(jī)生成有效手機(jī)號(hào)碼及身份證功能示例
- python隨機(jī)生成大小寫(xiě)字母數(shù)字混合密碼(僅20行代碼)
- python使用Random隨機(jī)生成列表的方法實(shí)例
- Python輕松實(shí)現(xiàn)2位小數(shù)隨機(jī)生成
相關(guān)文章
Pycharm沒(méi)有報(bào)錯(cuò)提示(誤觸ignore)的完美解決方案
這篇文章主要介紹了Pycharm沒(méi)有報(bào)錯(cuò)提示(誤觸ignore)的解決方案,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
python爬蟲(chóng)實(shí)現(xiàn)爬取同一個(gè)網(wǎng)站的多頁(yè)數(shù)據(jù)的實(shí)例講解
在本篇文章里小編給大家整理了一篇關(guān)于python爬蟲(chóng)實(shí)現(xiàn)爬取同一個(gè)網(wǎng)站的多頁(yè)數(shù)據(jù)的實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。2021-01-01
Django 使用Ajax進(jìn)行前后臺(tái)交互的示例講解
今天小編就為大家分享一篇Django 使用Ajax進(jìn)行前后臺(tái)交互的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
python數(shù)學(xué)建模之Matplotlib?實(shí)現(xiàn)圖片繪制
這篇文章主要介紹了python數(shù)學(xué)建模之Matplotlib?實(shí)現(xiàn)圖片繪制,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07
簡(jiǎn)單介紹使用Python解析并修改XML文檔的方法
這篇文章主要介紹了使用Python解析并修改XML文檔的方法,是Python入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10
python實(shí)現(xiàn)決策樹(shù)、隨機(jī)森林的簡(jiǎn)單原理
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)決策樹(shù)、隨機(jī)森林的簡(jiǎn)單原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
如何基于python對(duì)接釘釘并獲取access_token
這篇文章主要介紹了如何基于python對(duì)接釘釘并獲取access_token,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Python實(shí)現(xiàn)為PDF去除水印的示例代碼
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)PDF去除水印功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04

