简体   繁体   English

随机数生成器:计数器

[英]Random number generator: counter

I have this random number generator to record the positive, negative and zeroes recorded by the random generator. 我有这个随机数发生器来记录由随机发生器记录的正数,负数和零。 But, when I test it the negative numbers aren't recorded and are instead recorded in the positive counter. 但是,当我测试它时,不会记录负数,而是记录在正计数器中。 I don't see whats wrong with my code, any assistance? 我看不到代码有什么问题,需要任何帮助吗?

from random import randint
posi_counter = 0
nega_counter = 0
zero_counter = 0
avg_counter = 0

# Inputs
num_gen = int(input("How many numbers to be generated? "))
if num_gen > 0:
    max_gen = int(input("Enter maximum number to be generated (>0): "))
    min_gen = max_gen * -1
    print("For {} numbers in the range, {} to {}:".format(
    num_gen, min_gen, max_gen))
    avg = 0
    # Outputs
    for x in range(num_gen):
        print(randint(min_gen, max_gen))
        avg_counter += 1
        avg = avg + x
        if x > 0:
            posi_counter += 1
        elif x < 0:
            nega_counter += 1
        elif x == 0:
            zero_counter += 1
    average_total = avg / avg_counter
    print("{} positive numbers".format(posi_counter))
    print("{} zero numbers".format(zero_counter))
    print("{} negative numbers".format(nega_counter))
    print("{:.1f} average value".format(average_total))

x comes from range(num_gen) , so it is always >= 0 , do something like this instead: x来自range(num_gen) ,所以它总是>= 0 ,而是这样做:

for _ in range(num_gen):
    x = randint(min_gen, max_gen)
    print(x)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM