Python打印给定范围的浮点列表

Python打印给定范围的浮点列表,python,gambling,Python,Gambling,我试着模仿赌博游戏“崩溃”的一个非常简单的版本,其中有一个数字每秒都在增加,它也是你积分的倍增。如果你投50个积分,乘数变为3.30,你会得到50*3.30=165个积分。这个数字随机崩溃,如果你没有取款,你就会失去它们 from random import randrange, randint crash_max_range = 50 crash_min_range = 0 multiplier_crash = list(range(crash_min_range, crash_max_r

我试着模仿赌博游戏“崩溃”的一个非常简单的版本,其中有一个数字每秒都在增加,它也是你积分的倍增。如果你投50个积分,乘数变为3.30,你会得到50*3.30=165个积分。这个数字随机崩溃,如果你没有取款,你就会失去它们

from random import randrange, randint

crash_max_range = 50
crash_min_range = 0

multiplier_crash = list(range(crash_min_range, crash_max_range))
multiplier_crash = [float(i) for i in multiplier_crash]
print(*multiplier_crash, sep="\n")
我正在努力解决的主要问题是打印浮动列表

0
0.01
0.02
0.03
等等。。(新行上的每个数字) 我也不知道如何增加70%的时间在低空范围内崩溃的几率,因为很明显,玩家不可能总是赢。
你能帮我吗

我不清楚崩溃的原因,但是如果您希望浮点列表以.01的增量打印,那么您可以做的一件事是更改这两行,如下所示:

multiplier_crash = list(range(crash_min_range, crash_max_range * 100))
multiplier_crash = [float(i) / 100 for i in multiplier_crash]
multiplier_crash = ["{:,g}".format(float(i) / 100) for i in multiplier_crash]
import random

multiplier = 1.00
while True:
    print('{:.2f}'.format(multiplier))
    if random.random() < 0.1:
        break
    multiplier += 0.01
print('CRASH')
这会将首字母0打印为0.0,但是。。。如果您希望打印0和1等数字时不带尾随.0,如您的示例所示,一种方法是替换上面的第二行,如下所示:

multiplier_crash = list(range(crash_min_range, crash_max_range * 100))
multiplier_crash = [float(i) / 100 for i in multiplier_crash]
multiplier_crash = ["{:,g}".format(float(i) / 100) for i in multiplier_crash]
import random

multiplier = 1.00
while True:
    print('{:.2f}'.format(multiplier))
    if random.random() < 0.1:
        break
    multiplier += 0.01
print('CRASH')

对于模拟,通常使用一次只执行一步的循环。我建议在随机条件下使用无限循环和break语句

在这个循环中,每次打印只需要打印一个值。对于任何新代码,都应该使用该方法

代码可能如下所示:

multiplier_crash = list(range(crash_min_range, crash_max_range * 100))
multiplier_crash = [float(i) / 100 for i in multiplier_crash]
multiplier_crash = ["{:,g}".format(float(i) / 100) for i in multiplier_crash]
import random

multiplier = 1.00
while True:
    print('{:.2f}'.format(multiplier))
    if random.random() < 0.1:
        break
    multiplier += 0.01
print('CRASH')
随机导入
乘数=1.00
尽管如此:
打印(“{.2f}”。格式(乘数))
如果random.random()<0.1:
打破
乘数+=0.01
打印(‘崩溃’)
上面的示例并不完美,因为浮点错误在长时间运行时会累积。最好使用整数并对其进行缩放以获得输出

你可以这样做

import itertools
import random

for i in itertools.count(100):
    multiplier = float(i) / 100.0
    print('{:.2f}'.format(multiplier))
    if random.random() < 0.1:
       break
print('CRASH')
导入itertools
随机输入
对于itertools中的i。计数(100):
乘数=浮动(i)/100.0
打印(“{.2f}”。格式(乘数))
如果random.random()<0.1:
打破
打印(‘崩溃’)
这可以使用生成器表达式进一步简化。但是,当您刚刚开始pyhton时,代码可能不太清晰

import itertools
import random

for multiplier in (float(i) / 100.0 for i in itertools.count(100)):
    print('{:.2f}'.format(multiplier))
    if random.random() < 0.1:
       break
print('CRASH')
导入itertools
随机输入
对于中的乘法器(浮点(i)/i中的i的100.0。计数(100)):
打印(“{.2f}”。格式(乘数))
如果random.random()<0.1:
打破
打印(‘崩溃’)

我不了解中断条件:/break以0.1(即10%)的概率中止循环。据我所知,这就是崩溃的工作方式。一些进一步的研究表明,崩溃点是在循环开始之前由至少一个进行此类游戏的站点确定的。