python-生成随机字符

需求:

随机生成6位的大写字母:

方法一:

#!/usr/bin/env  python
# -*- coding:utf-8 -*-
import random
li = []
for i in range(6):
    temp = random.randrange(65,91)
    c = chr(temp)
    li.append(c)
result = "".join(li)
print(result)

结果:会随机生成6个字母

功能实现了,但是感觉有点low,例如:生成的字符比较单一,只能生成字母。我在想能不能让6个字符中出现两个数字呢?好,开始搞吧。

方法二:

#!/usr/bin/env  python
# -*- coding:utf-8 -*-
import random
li = []
for i in range(6):
    if i == 2 or i == 4:
        num = random.randrange(0,10)
        li.append(str(num))   #将数字转换为字符串,因为.join()方法无法处理数字类型,只能出现字符类型的数据
    else:
        temp = random.randrange(65,91)
        c = chr(temp)
        li.append(c)
result = "".join(li)
print(result)

结果:

DM5T9B

方法二满足了需求,6个字符中包括了2个数字。但是 大家有没有发现两个数字的位置比较固定,这也不符合正常人的逻辑啊。要求随机的啊,随机,随机。 好,知道了要求数字和字母出现的次数和位置随机。开始搞吧。

方法三:

#!/usr/bin/env  python
# -*- coding:utf-8 -*-
import random
li = []
for i in range(6):
    r = random.randrange(0,5)
    if r == 2 or r == 4:
        num = random.randrange(0,10)
        li.append(str(num))
    else:
        temp = random.randrange(65,91)
        c = chr(temp)
        li.append(c)
result = "".join(li)
print(result)

结果:

384M4J

方法三:方法二的优化

#!/usr/bin/env  python
# -*- coding:utf-8 -*-
import random
li = []
for i in range(6):
    r = random.randrange(0,5)
    if i == r:
        num = random.randrange(0,10)
        li.append(str(num))
    else:
        temp = random.randrange(65,91)
        c = chr(temp)
        li.append(c)
result = "".join(li)
print(result)

结果:

N7WIHL

好了,已经实现了需求。

总结:

(1)random 是随机生成数字。

(2)i = random.randrange(0,5)  表示生成0-4的随机数,记住不包括5哦。  取值范围为:  1=< i  < 5

(3)"".join(li)  表示把列表li 的值生成一个字符串中间不用任何符号分隔,所以用了 ""

例如:

li = [‘A‘,‘B‘,‘C‘,‘D‘,‘E‘]
result = "".join(li)
print(result)

结果:这里使用了 "".join()

ABCDE

我们用 “_”  下划线 来分隔。使用"_".join()

li = [‘A‘,‘B‘,‘C‘,‘D‘,‘E‘]
result = "_".join(li)
print(result)

结果:

A_B_C_D_E

(4)join() 只能处理字符,不能处理数字,不信? 好,那么我们试试吧。

#!/usr/bin/env  python
# -*- coding:utf-8 -*-
li = [1,2,3,4,5]
result = "_".join(li)
print(result)

结果:

所以我们代码中使用了:str()

num = random.randrange(0,10)
li.append(str(num))   #将数字转换为字符串,因为.join()方法无法处理数字类型,只能出现字符类型的数据

(5)chr 和 ord

chr 将数字转换为ASII码中对应的字母

ord  将字母转换为ASII码中对应的数字

r = chr(65)
print(r)

n = ord("A")
print(n)

结果:

A
65

时间: 2024-07-29 18:42:27

python-生成随机字符的相关文章

Python 生成随机验证码

Python生成随机验证码 Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 from PIL import Image img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255)) # 在图片查看器中打开 # img.show()  # 保存在本地 with open('code.png','wb') as f

python生成随机验证码

Python 生成随机验证码,需安装 PIL模块 安装: pip3 install pillow 基本使用 1,.创建图片 from PIL import Image img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255)) # 在图片查看器中打开 # img.show() # 保存在本地 with open('code.png','wb') as f: img.save(f,format='png') 2.创建画笔,用

Python生成随机字符串

利用Python生成随机域名等随机字符串. #!/usr/bin/env python# -*- coding: utf-8 -*- from random import randrange, choice from string import ascii_lowercase as lc from sys import maxsize from time import ctime tlds = ('com', 'edu', 'net', 'org', 'gov') for i in range(

Python生成随机五位数——模仿手机验证码

使用Python生成随机的五位手机验证码. # -*- coding:utf-8 -*- #生成五位随机数,模仿手机验证码 #导入random库,可以生成随机数 import random def ran(): L = [] M = [] #通过遍历5次,生成五个元素,并插入列表L for i in range(5): L.append(random.randint(0,9)) if len(L) >= 5: break #通过遍历将L的五个元素由数字转为字符串,导入空列表M,并使用join方法

python生成随机日期字符串

原文来自:  python生成随机日期字符串 生成随机的日期字符串,用于插入数据库. 通过时间元组设定一个时间段,开始和结尾时间转换成时间戳. 时间戳中随机取一个,再生成时间元组,再把时间元组格式化输出为字符串 import time import random a1=(1976,1,1,0,0,0,0,0,0) #设置开始日期时间元组(1976-01-01 00:00:00) a2=(1990,12,31,23,59,59,0,0,0) #设置结束日期时间元组(1990-12-31 23:59

Java中生成随机字符的方法总结

package learnExercise; public class RandomCharacter { public static char getRandomCharacter(char ch1,char ch2){ return (char)(ch1+Math.random()*(ch2-ch1+1));//因为random<1.0,所以需要+1,才能取到ch2 } public static char getRandomLowerCaseLetter(){ return getRand

企业Shell面试题1:批量生成随机字符文件名案例

使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下: [[email protected]]# ls /oldboy apquvdpqbk_oldboy.html mpyogpsmwj_oldboy.html  txynzwofgg_oldboy.html bmqiwhfpgv_oldboy.html mtrzobsprf_oldboy.html  vjxmlflawa_oldboy.html jhjdcj

python 生成随机字符串 和随机数字

生成随机字符串: ''.join(random.sample(string.ascii_letters + string.digits, 8)) //字符串中不会重复 for _ in range(8): s += random.choice(string.ascii_letters + string.digits) //字符串可以重复 生成随机浮点数 random.uniform(10, 20) 生成随机整数 random.randint(12, 20) 原文地址:https://www.cn

jQuery 生成随机字符

//获取长度为len的随机字母 //获取长度为len的随机字母 function zimu(len){ len = len || 1; var $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var maxPos = $chars.length; var pwd = ''; for (i = 0; i < len; i++) { pwd += $chars.charAt(Math.floor(Math.random() * maxPos)); } //引用 $(&quo

python 生成随机优惠码(随机字符串)

第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? https://github.com/Yixiaohan/show-me-the-code import random codeLength = 12 codeCount = 200 codeOrig = "ABCDEFGHIJKLMNOPQRST1234567890" def makePromoteCo