python中random模块及其常用方法

random模块常用方法

1)random.random()

#random.random()用于生成一个随机小数n,0<=n<1.0
import random
random.random()
0.07391371910358258

2)random.uniform(a,b)

#random.uniform(a,b),用于生成一个指定范围内的小数,两个参数中一个是上限,一个是下限,如果ab,则b<=n<=a
import random
print(random.uniform(10,20))
print(random.uniform(20,10))
10.897982983785754
14.111023929383776

3)random.randint(a,b)

#random.randint(a,b)用于随机生成一个指定范围内的整数,其中参数a是下限,参数b是上限,生成的随机数n有a<=n<=b
import random
print(random.randint(12,20))
print(random.randint(20,20))   #结果永远是20
#print(random.randint(20,10))   #错误语句,下限必须小于上限
19
20

4)random.randrange([start],stop[,step])

#random.randrange([start],stop[,step])用于从指定范围内按指定基数递增的集合中获取一个随机数。例如random.randrange(10,100,2)
#结果相当于从[10,12,14,16...96,98]序列中获取一个随机数。random.randrange(10,100,2)的结果上与random.choice(range(10,100,2))等效

5)random.choice()

#random.choice()从序列中获取一个随机元素,其原型为random.choice(sequence),参数sequence表示一个有序类型。这里说明一下,sequence在Python
#中不是一种特定的类型,而是泛指序列数据结构。列表,元组,字符串都属于sequence。下面是使用random.choice()的一些例子
import random
print(random.choice('学习python'))                        #从字符串中随机取一个字符
print(random.choice(['good','hello','is','hi','boy']))    #从list列表中随机取
print(random.choice(('str','tuple','list')))              #从tuple元组中随机取
学
boy
str

6)random.shuffle(x[,random])

#random.shuffle(x[,random])用于将一个列表中的元素打乱,例如:
p=['hehe','xixi','heihei','haha','zhizhi','lala','momo..da']
random.shuffle(p)
print(p)
['hehe', 'zhizhi', 'momo..da', 'haha', 'heihei', 'lala', 'xixi']

7)random.sample(sequence,k)

#random.sample(sequence,k)用于从指定序列中随机获取指定长度的片段,sample()函数不会修改原有序列.
list1=[1,2,3,4,5,6,7,8,9,10]
slice=random.sample(list1,5)    #从list中随机获取5个元素作为一个片段返回
print(slice)
print(list1)
[5, 2, 8, 4, 1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

使用举例

#1.随机字符
import random
random.choice('abcdefg')
'b'
#2.在多个字符中选取特定数量的字符
import random
random.sample('abcdefghijk',3)
['k', 'i', 'h']
#3.在多个字符中选取特定数量的字符组成新字符串
import random
" ".join(random.sample(['a','b','c','d','e','f','g','h'],3)).replace(" ","")
'bea'
#4.随机选取字符串
import random
random.choice(['haha','hehe','heihei','acm','xixi'])
'heihei'
#5.洗牌
import random
items=[1,2,3,4,5,6,7]
random.shuffle(items)
items
[6, 5, 4, 3, 1, 2, 7]
#6.随机选取0到100之间的偶数
import random
random.randrange(0,101,2)
96
#7.随机生成1-100之间的小数
random.uniform(1,100)
61.7888094316059

序列随机数应用:猜单词游戏

import random
WORDS=('python','jumble','easy','difficult','answer','continue','phone','position','game','student')
print('---欢迎参加猜单词游戏---')
print('-请把字母组合成一个正确的单词-\n')
flag='y'

while flag=='y' or flag=='Y':
    #从序列中随机挑出一个单词
    word=random.choice(WORDS)
    c=word
    #print(word)
    jumble=""#定义一个空字符串
    while word:#word不是一个空字符串
        position = random.randrange(len(word))
        #print(position)
        #将position位置的字母组合到乱序后的单词
        jumble+=word[position]
        #通过切片,将position位置的字母从原单词中删除
        word=word[:position]+word[position+1:]
    print('乱序后的单词:',jumble)
    w=input('\n请你猜: ')
    while w!=c and w!='':
        print('回答错误')
        w=input('请继续猜')
    print('回答正确!')
    flag=input('\n是否继续(Y/N):')
---欢迎参加猜单词游戏---
-请把字母组合成一个正确的单词-

乱序后的单词: yeas

请你猜: easy
回答正确!

是否继续(Y/N):y
乱序后的单词: amge

请你猜: amge
回答错误
请继续猜game
回答正确!

是否继续(Y/N):n

你可能感兴趣的:(python)