Подправьте код python - Общение Python мододелов

Вопрос Подправьте код python

Регистрация
12 Авг 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
n = 0

m = randint(-1000, 1000)

k1 = 0

k2 = 0

while m != 0:

if m < 0:

k1 += 1

else:

k2 += 1

n += 1

m = randint (-1000, 1000)

if k2 > k1:

k = k2-k1

print("Из", n, "положительных чисел", k2, "больше чем", k1, "на", k, '.')

if k1 > k2:

k = k1-k2

print("Из", n, "отрицательных чисел", k1, "больше чем", k2, "на", k, ".")

if k1 == k2:

print("Из n чисел положительных и отрицательных одинаково.") Программа получает случайные числа, модуль которых не превышает 1000. Как только выпадет 0, надо подвести итог в следующем формате:

Из n чисел ... больше чем ... на k.

или

Из n чисел положительных и отрицательных одинаково.

Вместо:

n - количество чисел, не считая 0;

... - слово отрицательных или положительных;

k - натуральное число, результат подсчета.
 
Регистрация
30 Июн 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
from random import randint

n, k1, k2 = 0, 0, 0

while (m := randint(-1000, 1000)) != 0:
k1 += m < 0
k2 += m > 0
n += 1

if k1 != k2:
k = abs(k1 - k2)
print(f"Из {n} чисел {('положительных', 'отрицательных')[k1 > k2]} {max(k1, k2)} больше чем {min(k1, k2)} на {k}.")
else:
print(f"Из {n} чисел положительных и отрицательных одинаково.")
 
Регистрация
6 Май 2013
Сообщения
63
Репутация
0
Спасибо
0
Монет
0
from random import randint

n = 0
m = randint(-1000, 1000)
k1 = 0
k2 = 0

while m != 0:
if m < 0:
k1 += 1
else:
k2 += 1
n += 1
m = randint(-1000, 1000)

if k2 > k1:
k = k2 - k1
print(f"Из {n} положительных чисел {k2} больше чем {k1} на {k}.")
elif k1 > k2:
k = k1 - k2
print(f"Из {n} отрицательных чисел {k1} больше чем {k2} на {k}.")
else:
print(f"Из {n} чисел положительных и отрицательных одинаково.")


Исправления включают в себя использование форматирования строк (f-строк) для более читаемого вывода, а также замену if-elif-else для более эффективной проверки условий.
 
Регистрация
27 Май 2013
Сообщения
80
Репутация
-3
Спасибо
0
Монет
0
from random import randint
n = k = 0
m = randint(-1000, 1000)
while m:
k += 1 - 2 * (m < 0)
m = randint(-1000, 1000)
n += 1
if k:
r = ['отрицательных', 'положительных']
print(f"Из {n} чисел {r[k > 0]} больше чем {r[k < 0]} на {abs(k)}")
else:
print('Из n чисел положительных и отрицательных одинаково')
 
Регистрация
17 Окт 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
from random import randint

n = 0
m = randint(-1000, 1000)
k1 = 0
k2 = 0

while m != 0:
if m &lt; 0:
k1 += 1
else:
k2 += 1
n += 1
m = randint(-1000, 1000)

if k2 &gt; k1:
k = k2 - k1
print(&#34;Из&#34;, n, &#34;положительных чисел&#34;, k2, &#34;больше, чем&#34;, k1, &#34;на&#34;, k, &#34;.&#34;)
elif k1 &gt; k2:
k = k1 - k2
print(&#34;Из&#34;, n, &#34;отрицательных чисел&#34;, k1, &#34;больше, чем&#34;, k2, &#34;на&#34;, k, &#34;.&#34;)
else:
print(&#34;Из&#34;, n, &#34;чисел положительных и отрицательных одинаковое количество.&#34;)
 
Сверху Снизу