永发信息网

Python中,我想得到1~255随机整数,用rand.randint(1,255),但不想让里面170这个数出现,怎么写呢?

答案:6  悬赏:70  手机版
解决时间 2021-02-19 05:29
Python中,我想得到1~255随机整数,用rand.randint(1,255),但不想让里面170这个数出现,怎么写呢?
最佳答案
相当于是取1~254的随机数,然后如果得到的数大于等于170的话,就往后挪1,就达到你要的随机效果了。

a = random.randint(1, 254)
if a >= 170:
a += 1
全部回答
#  Python 3 版本适用此代码,这段代码的思路是先生成一个符合要求的所有数字的列表。
#  然后从这个列表里除去不需要的170这个数字,再用随机函数在这个不包含170的数字集合中
#  随机出一个数字。
import random                 # 导入random这个库
a=list(range(1,256))          # 生成包含1到255这些数字的列表,注意range的参数是包头不包尾。
a.remove(170)                 # 从列表中去除170这个数字
print(random.sample(a,1)[0])  # 打印这个数字,sample方法两个参数的意义是(列表,取几个值)
import random
import pylab
def generate(n):
    list = []
    for i in range(n):
                                  
        a = random.randint(1,169)
        b = random.randint(171,255)
        if random.random() < 169.0 / 255.0:
            list.append(a)
        else:
            list.append(b)
    return list
pylab.hist(generate(10000),bins=254)
pylab.show()
看看,最后绘图,均匀分布

观看了楼主采纳的这个答案觉得不妥,虽然下面的代码也可以达到随机的效果。import random
a = random.randint(1, 254)
if a >= 170:
a += 1

但却不是真正的随机,真正的随机应该是先随机得到1-254之间的一个数,如果这个数等于170,再次随机,这样才能保证得到的数是完全随机出来的,而不能给随机出来的数加上1。
可以是下面这样的。import random
a=random.randint(1,254)
while(a==170):
a=random.randint(1,254)
print(a)

当然上面的随机是把170这个数也算入到里面去了,那么怎么去掉170这个数,再在1-169,169-254这两组数字之间随机呢?下面有一行代码可以得到随机整数import random
random.choice([x for x in range(1,254) if x!=170 ])楼主可以用type(x)来查看得到的数的类型,是个整数哦。

不知道是否满足楼主的需求?追问嗯,你说的对,昨天我问好之后就自己想到了和你一摸一样一样的方法,所以没多考虑就选了一个,谢谢你啦
import random
def numgen(start, ended, times=100, exceptset=set()):
    while times:
        x = random.randint(start, ended)
        if x in exceptset:
            continue
        yield x
        times -= 1
        
for n in numgen(1, 255, 10, set([170,]):
   print n
from random import *
a = range(1,256)
a.remove(170)
print sample(a, 1)[0]
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有谁知道电信宽带发票掉了该怎么办?可以补回
女郎番禺总店地址在哪,我要去那里办事
35岁了 零基础 现在学编程晚了吗
heal the world赏析
在N卡的专业显卡里面,哪个型号好些,有哪些
电费为什么要算三次电价
月底公司业绩不好怎样激励员工,又让他们感觉
用力[F]、长度[L]和时间[T]为基本物理量
中国农业银行济南清河街分理处这个地址在什么
遗传算法怎么跟粒子群算法结合呢
感冒咳嗽会引起儿童心脏有杂音吗
买了个全包座套,后排坐垫怎么拆
用10条30cm的长的线条首尾粘合成一个纸圈,每
大地木业地址有知道的么?有点事想过去
便宜廉价的车为什么比你的车更耐操?
推荐资讯
福禄克fluke8842a好不好用
武汉奇都装饰怎么去啊,有知道地址的么
【云雾寺】写一篇400字作文中心:大自然的美景
【算数】可不可以告诉我* ^ 在数学算数中是什
单选题Youcangivethebookto________hasn't
怎么修复病毒损坏的EXCEL文档
一种单细胞真菌,做馒头或酿酒的时候必须用到
翰辉易贷连云港市海连中路店地址有知道的么?
农金银行和农业银行是一一家吗
水肤兰公司项目如何?好做吗?能赚钱吗?
哪些贷款像爱钱进一样
开车怎么看右边
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?