python之造數據(random、string、faker)

 

1.random模塊

random: 生成0~1的隨機浮點數 0<=n<1.0
uniform: 生成指定範圍的隨機浮點數 a<=n<=b
randint: 生成指定範圍內的整數 a<=n<=b
randrange: 在指定範圍內 按指定基數遞增的集合中 獲取一個隨機數 eg:randrange(a, b, 2)
choice: 從序列中獲取一個隨機數  eg:print(random.choice("python"))
shuffle:用於將一個列表中的元素打亂  eg:random.shuffle(names)
sample:從指定序列中隨機獲取指定長度的片段,且不改變原有序列 eg:random.sample(sequence, k)
print('random.random(生成0~1隨機浮點數):', random.random())
print('random.uniform(生成指定範圍隨機浮點數):', random.uniform(1, 100))
print('random.randint(生成指定範圍整數):', random.randint(1, 100))
print('random.randrange(指定範圍指定基數遞增隨機數):', random.randrange(1, 200, 3))
print('random.choice(序列中隨機獲取一隨機數):', random.choice('python'))
# list_info = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list_info = list(range(10))
random.shuffle(list_info)  # shuffle沒有返回值
print('random.shuffle(對列表進行隨機排序):', list_info)
print('random.sample(從列表、元組、字符串隨機獲取指定數量片段):', random.sample(list_info, 3))
-------------------------------------
#random.random(生成0~1隨機浮點數): 0.26522067075454425
#random.uniform(生成指定範圍隨機浮點數): 41.26336247073068
#random.randint(生成指定範圍整數): 28
#random.randrange(指定範圍指定基數遞增隨機數): 154
#random.choice(序列中隨機獲取一隨機數): t
#random.shuffle(對列表進行隨機排序): [9, 1, 5, 6, 2, 0, 7, 4, 3, 8]
#random.sample(從列表、元組、字符串隨機獲取指定數量片段): [3, 4, 6]

2.string模塊

string.digits:數字0~9
string.ascii_letters:所有字母(大小寫)
string.uppercase:所有大寫字母
string.lowercase:所有小寫字母
string.printable:可打印字符的字符串
string.punctuation:所有標點
print('string.digits(數字0~9):', string.digits)
print('string.ascii_letters(所有字母(大小寫))', string.ascii_letters)
print('string.ascii_lowercase(所有小寫字母):', string.ascii_lowercase)
print('string.ascii_uppercase(所有大寫字母):', string.ascii_uppercase)
print('string.printable(可打印字符字符串)', string.printable)
print('string.punctuation(所有標點符號):', string.punctuation)
-------------------------------------------------------
#string.digits(數字0~9): 0123456789
#string.ascii_letters(所有字母(大小寫)) abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
#string.ascii_lowercase(所有小寫字母): abcdefghijklmnopqrstuvwxyz
#string.ascii_uppercase(所有大寫字母): ABCDEFGHIJKLMNOPQRSTUVWXYZ
#string.printable(可打印字符字符串) 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 	

#string.punctuation(所有標點符號): !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

應用:生成不重複的隨機5位碼

def renyi(numlenth):
    """
    綜合應用
    :param numlenth:
    :return:
    """
    list_info = random.sample(string.digits + string.ascii_letters, numlenth)
    list_str = ''.join(list_info)
    return list_str


print('獲得5位隨機數:', renyi(5))
------------------
#獲得5位隨機數: tzpoY

3.faker模塊

  • 個人信息類:
  • name():姓名
    
    user_name(*args, **kwargs):用戶名,只是隨機的英文姓名組合,一般是6位
    
    phone_number():電話號碼
    
    simple_profile(sex=None):個人綜合信息,包括用戶名,姓名,性別,地址,郵箱,出生日期。
    #個人綜合信息: {'username': 'xyang', 'name': '劉俊', 'sex': 'F', 'address': '遼寧省六盤水市孝南呼和浩特街Y座 839563', 'mail': '[email protected]', 'birthdate': datetime.date(1906, 1, 4)}
    
    profile(fields=None, sex=None):個人詳細信息,比簡略個人信息多出公司名、血型、工作、位置、域名等等信息。
    #個人詳細信息: {'job': '酒店/賓館銷售', 'company': '聯通時科傳媒有限公司', 'ssn': '500229195805225819', 'residence': '澳門特別行政區豔市新城胡路c座 331579', 'current_location': (Decimal('77.8234735'), Decimal('-125.973198')), 'blood_group': 'AB+', 'website': ['http://www.cui.cn/', 'https://www.31.cn/', 'https://www.chao.net/'], 'username': 'jingli', 'name': '陳帥', 'sex': 'M', 'address': '黑龍江省哈爾濱市東城齊齊哈爾街G座 190003', 'mail': '[email protected]', 'birthdate': datetime.date(1939, 1, 11)}
    
    password():密碼
    參數選項:length:密碼長度;special_chars:是否能使用特殊字符;digits:是否包含數字;upper_case:是否包含大寫字母;lower_case:是否包含小寫字母。
    默認情況:length=10, special_chars=True, digits=True, upper_case=True, lower_case=True
    
    job():工作

     

  • 地址信息類
  • address():完整地址
    street_address():街道+地址
    street_name():街道名
    city_name():城市名
    city():城市
    province():省份名
    postcode():郵編
    country():國家

     

  • 文章類
  • word():隨機詞語	
    words():隨機多個詞語	
    sentence():隨機短語(會包括短語結束標誌點號)
    paragraph():隨機段落
    paragraphs():多個隨機段落

     

  • 數據類
  • pystr(min_chars=None, max_chars=20):自定義長度的隨機字符串
    pyint():隨機整數

     

faker模塊應用:

from faker import Faker
from faker import Factory
f = Faker(locale='zh_CN')   # 初始化
print('隨機地址:', f.address())
print('隨機名字:', f.name())
print('隨機請求頭:', Factory.create().user_agent())
print('個人綜合信息:', f.simple_profile())
print('個人簡略信息:', f.profile())
print('隨機詞語:', f.word())
print('隨機段落:', f.paragraph())
print('隨機字符串:', f.pystr(12))
----------------------------
#隨機地址: 黑龍江省澳門縣金平李路A座 688630

#隨機名字: 曹帆

#隨機請求頭: Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/532.1 (KHTML, like Gecko) CriOS/40.0.814.0 Mobile/51U966 Safari/532.1

#個人綜合信息: {'username': 'guiyinghou', 'name': '潘小紅', 'sex': 'F', 'address': '陝西省北京縣南湖呂街m座 923622', 'mail': '[email protected]', 'birthdate': datetime.date(1961, 5, 4)}

#個人簡略信息: {'job': '針織工', 'company': '明騰信息有限公司', 'ssn': '530421195501115966', 'residence': '澳門特別行政區海燕縣金平曹路l座 360735', 'current_location': (Decimal('-30.5071205'), Decimal('-137.220189')), 'blood_group': 'A+', 'website': ['http://www.yanzhu.cn/', 'http://www.vm.cn/', 'http://xiulankang.cn/'], 'username': 'minghan', 'name': '劉建', 'sex': 'M', 'address': '江蘇省霞市懷柔海口路i座 952852', 'mail': '[email protected]', 'birthdate': datetime.date(1929, 12, 17)}

#隨機詞語: 因爲

#隨機段落: 學生就是名稱知道我們可以.大家比較因爲一個.

#隨機字符串: xpoNZvseWQWCG

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章