#python #python-3.x
Вопрос:
Я пишу этот фрагмент кода, в котором вы начинаете с 1 пенни, и он удваивается в течение каждой секунды в течение 30 секунд. Конечный результат составляет 107374182,4 миллиона долларов. Я сделал это самым простым способом, который я знаю. Я недавно начал кодировать с использованием Python 3. Как я могу просто это сделать?
import time
penny = 0.1
time.sleep(1)
pen1 = penny * 2
print(pen1)
time.sleep(1)
pen2 = pen1 * 2
print(pen2)
time.sleep(1)
pen3 = pen2 * 2
print(pen3)
time.sleep(1)
pen4 = pen3 * 2
print(pen4)
time.sleep(1)
pen5 = pen4 * 2
print(pen5)
time.sleep(1)
pen6 = pen5 * 2
print(pen6)
time.sleep(1)
pen7 = pen6 * 2
print(pen7)
time.sleep(1)
pen8 = pen7 * 2
print(pen8)
time.sleep(1)
pen9 = pen8 * 2
print(pen9)
time.sleep(1)
pen10 = pen9 * 2
print(pen10)
time.sleep(1)
pen11 = pen10 * 2
print(pen11)
time.sleep(1)
pen12 = pen11 * 2
print(pen12)
time.sleep(1)
pen13 = pen12 * 2
print(pen13)
time.sleep(1)
pen14 = pen13 * 2
print(pen14)
time.sleep(1)
pen15 = pen14 * 2
print(pen15)
time.sleep(1)
pen16 = pen15 * 2
print(pen16)
time.sleep(1)
pen17 = pen16 * 2
print(pen17)
time.sleep(1)
pen18 = pen17 * 2
print(pen18)
time.sleep(1)
pen19 = pen18 * 2
print(pen19)
time.sleep(1)
pen20 = pen19 * 2
print(pen20)
time.sleep(1)
pen21 = pen20 * 2
print(pen21)
time.sleep(1)
pen22 = pen21 * 2
print(pen22)
time.sleep(1)
pen23 = pen22 * 2
print(pen23)
time.sleep(1)
pen24 = pen23 * 2
print(pen24)
time.sleep(1)
pen25 = pen24 * 2
print(pen25)
time.sleep(1)
pen26 = pen25 * 2
print(pen26)
time.sleep(1)
pen27 = pen26 * 2
print(pen27)
time.sleep(1)
pen28 = pen27 * 2
print(pen28)
time.sleep(1)
pen29 = pen28 * 2
print(pen29)
time.sleep(1)
pen30 = pen29 * 2
print(pen30)
Комментарии:
1. Используйте петлю или что-то более продвинутое: генератор!
2. Пара ссылок, которые могут вам помочь. docs.python.org/3/tutorial/… и docs.python.org/3/tutorial/controlflow.html
3. Два дополнения: пенни обычно не равен 0,1, и здесь следует использовать целые числа, поплавки становятся неточными, если они становятся больше.
4. С точки зрения @KlausD, он подразумевает, что для этой конкретной проблемы не требуется поплавок, поскольку вам не нужно иметь дело с десятичными знаками (при условии, что число представляет собой цент). Для дальнейшего изучения прочитайте о том, как хранится поплавок, чтобы понять, почему это так.
Ответ №1:
используйте цикл (всегда помните-при написании кода, если какой-то код повторяется, используйте цикл или функцию):
penny = 0.1
for i in range(30):
time.sleep(1)
penny *= 2
print(penny)
Комментарии:
1. В этом случае нельзя было бы также написать 0.1 * 2 ** 30
2. да, конечно, но я думаю, что он хочет печатать каждый свой шаг, вот почему
3. Да, также лучше сначала узнать о циклах, чем о магической функции.
Ответ №2:
total_time = 30
pennies = 1
for i in range (total_time):
pennies *= 2
dollars = pennies/100
print(dollars)