1、可以使用while函数,对随机进行循环
2、直接在随机数中去掉170这个值
扩展资料:
除了randint,random模块中比较常用的方法还有:
1、random.random()
生成一个0到1之间的随机浮点数,包括0但不包括1,也就是[0.0, 1.0)。
2、random.uniform(a, b)
生成a、b之间的随机浮点数。不过与randint不同的是,a、b无需是整数,也不用考虑大小。
random.uniform(2.2, 6)
random.uniform(6,2.2)
这两种参数都是可行的。
3、random.choice(seq)
从序列中随机选取一个元素。seq需要是一个序列,比如list、元组、字符串。
random.choice([1, 4, 7, 2, 5, 8]) #list
random.choice('hello') #字符串
random.choice((1, 2, 3)) #元组
都是可行的用法。
先随机得到1-254之间的一个数,如果这个数等于170,再次随机,这样才能保证得到的数是完全随机出来的,而不能给随机出来的数加上1。
可以是下面这样的。
import random
a=random.randint(1,254)
while(a==170):
a=random.randint(1,254)
print(a)
在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。
产生随机数有多种不同的方法。这些方法被称为随机数发生器。随机数最重要的特性是:它所产生的后面的那个数与前面的那个数毫无关系。
真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。
在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。计算机或计算器产生的随机数有很长的周期性。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。这样的发生器叫做伪随机数发生器。
在真正关键性的应用中,比如在密码学中,人们一般使用真正的随机数。
C语言、C++、C#、Java、Matlab等程序语言和软件中都有对应的随机数生成函数,如rand等。
参考资料:随机数_百度百科
观看了楼主采纳的这个答案觉得不妥,虽然下面的代码也可以达到随机的效果。
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楼主可以用type(x)来查看得到的数的类型,是个整数哦。
random.choice([x for x in range(1,254) if x!=170 ])
不知道是否满足楼主的需求?
相当于是取1~254的随机数,然后如果得到的数大于等于170的话,就往后挪1,就达到你要的随机效果了。
a = random.randint(1, 254)
if a >= 170:
a += 1
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