我使用随机数发生器从5到10创建随机数。难道不是很难吗?我以前在代码中使用它(+ 2000行代码,这里太多了)并且没有发生编码错误。
我的代码只是我游戏中的复活节蛋,但它打破了我的所有代码:
...
def slowp(t):
for l in t:
sys.stdout.write(l)
sys.stdout.flush()
x=random.randint(0.1,0.9)
time.sleep(x)
print("")
if act=="++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>":
slowp("Hey, that is hello world made in brainfuck!")
...
act
是一个字符串,其值由用户仅使用act=str(input("type here."))
提供。它直接在这部分之前完成。
错误讯息:
Traceback (most recent call last):
File "startgame.py", line 2084, in <module>
slowp("Hey, that is hello world made in brainfuck!")
File "startgame.py", line 140, in slowp
x=random.randint(0.1,0.9)
File "/usr/lib/python3.4/random.py", line 216, in randint
return self.randrange(a, b+1)
File "/usr/lib/python3.4/random.py", line 180, in randrange
raise ValueError("non-integer arg 1 for randrange()")
ValueError: non-integer arg 1 for randrange()
实际问题是什么?
答案 0 :(得分:10)
您正尝试将浮点值传递给random.randint()
。该函数只需整数。
您需要使用random.uniform()
function代替;它会在下限和上限(包括)之间产生一个均匀的随机值:
返回随机浮点数N,使得&lt; = N&lt; = b,a&lt; = b,b&lt; = N&lt; = a,b <&lt;一个。
演示:
>>> import random
>>> random.uniform(0.1, 0.9)
0.6793304134926453
答案 1 :(得分:1)
ValueError: non-integer arg 1 for randrange()
random.randint(0.1,0.9)
您必须将整数传递给该函数。 0.1和0.9不是整数
答案 2 :(得分:0)
你可以
app:layout_scrollFlags="scroll|exitUntilCollapsed"
在 random.randint(start, stop, step) 中我们可以使用 step
random.uniform(start, stop) - 无步骤