Ich habe diesen Zufallsgenerator, um die positiven, negativen und Nullen aufzuzeichnen, die vom Zufallsgenerator aufgezeichnet wurden. Aber wenn ich es teste, werden die negativen Zahlen nicht aufgezeichnet und stattdessen im positiven Zähler aufgezeichnet. Ich sehe nicht, was mit meinem Code falsch ist, irgendeine Hilfe?Zufallsgenerator: Zähler
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', wegen 'Bereich (num_gen)' ist immer positiv. Sie behalten den von 'randint' generierten Wert nicht bei. –
Nebenbei würde ich Ihre 'avg' Variable in' total' umbenennen. (Es ist nicht der Durchschnitt der Zufallsvariablen, es ist ihre Summe - aber 'sum 'ist ein eingebauter Python, also wäre eine schlechte Wahl des Namens.' Average_total' könnte dann' durchschnittlich 'werden. –