一、隨機生成漢字:
第一種方法:Unicode碼
在unicode碼中,漢字的范圍是(0x4E00, 9FBF)
這個方法比較簡單,但是有個小問題,unicode碼中收錄了2萬多個漢字,包含很多生僻的繁體字.
第二種方法:GBK2312
gbk2312對字符的編碼采用兩個字節相組合,第一個字節的范圍是0xB0-0xF7, 第二個字節的范圍是0xA1-0xFE.
對GBK2312編碼方式詳細的解釋請參看GBK2312編碼
GBK2312收錄了6千多常用漢字.兩種方法的取舍就看需求了.
import random def Unicode(): val = random.randint(0x4e00, 0x9fbf) return chr(val) 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 if __name__ == '__main__': print(Unicode()) print(GBK2312())
第三種方法:列表讀取
# encoding: utf-8 import random first_name = ["王", "李", "張", "劉", "趙", "蔣", "孟", "陳", "徐", "楊", "沈", "馬", "高", "殷", "上官", "鍾", "常"] second_name = ["偉", "華", "建國", "洋", "剛", "萬里", "愛民", "牧", "陸", "路", "昕", "鑫", "兵", "碩", "志宏", "峰", "磊", "雷", "文","明浩", "光", "超", "軍", "達"] name = random.choice(first_name) + random.choice(second_name) print(name)
二、隨機生成數字:
phone_f = "182" phone_e = random.randint(10000000,99999999) phone = phone_f + str(phone_e)
三、其他隨機語句:
import random import string print(random.random())#隨機浮點數,默認取0-1,不能指定范圍 print(random.randint(1,20))#隨機整數 print(random.randrange(1,20))#隨機產生一個range print(random.choice('x23serw4'))#隨機取一個元素 print(random.sample('hello',2))#從序列中隨機取幾個元素 print(random.uniform(1,9))#隨機取浮點數,可以指定范圍 x = [1,2,3,4,6,7] random.shuffle(x)#洗牌,打亂順序,會改變原list的值 print(x) print(string.digits)#所有的數字 print(string.ascii_letters)#所有的字母 print(string.punctuation)#所有的特殊字符