基本上,我在Python(3)中乱搞,我正在尝试定义一些函数来在单行中执行一些常见任务,使用尽可能少的内存
例如,在视频游戏中,您可能希望角色左/右转,但不是0度。那么,给定一个整数x
,你怎么能在-x
和+ x'(包括)之间返回一个不是0的随机整数?
注意,我打算使用最小内存的单行。
我正在发布答案,但我也想知道其他人会如何处理这个问题。
编辑:这不是学校的家庭作业或任何东西,我只是设计一个视频游戏并定义一些将派上用场的功能。我说没有'如果是因为我想知道是否可能,如果是,那怎么样。谢谢: - )
答案 0 :(得分:6)
我建议:
import random
def randint_between(x):
return random.choice([-1, 1]) * random.randint(1, x)
答案 1 :(得分:0)
我会用:
import random
def between(x):
return ((((random.randint(0, 1) * 2) - 1) * random.randint(1, x))
答案 2 :(得分:0)
random.sample使用的范围与它们提供的数字范围相比非常小。
这将在1和x之间创建一个正数,并将其与1或-1相乘。
import random
def between(x):
return random.sample(range(1, x+1),k=1)[0] * (-2*random.randint(0,1)+1)
在看了kch回答之后,我可能会采取他的方法。