Найти - Пользователи
Полная версия: Задачка для начинающего
Начало » Центр помощи » Задачка для начинающего
1
medusa_01
Уважаемые господа. Мне иребуется не помощь, а пояснение, т.к. я что-то не улавливаю. Задача - необходимо составить программу в которой пользователь вводил число особей, количество дней на размножение и среднесуточный прирост в %. Вот код, который я написал:
 # Программа увеличения популяции
# Инициализация
startChislo = 0
srsUvelichenie = 0.0
dneyVsego = 0
while startChislo <= 0:
    startChislo = int(input('Введите начальное число особей: '))
while srsUvelichenie <= 0:
    srsUvelichenie = float(input('Введите среднесуточное увеличение, %: '))
while dneyVsego <= 0:
    dneyVsego = int(input('Введите количество дней на размножение: '))
srsUvelichenie /= 100
print('------------------------------')
print('ДНЕЙ\t\tЧИСЛО ОСОБЕЙ')
for dney in range(dneyVsego):
    if dney > 0:
        startChislo += (startChislo * srsUvelichenie)
    print(dney +1, '\t\t', startChislo)

Все работает , но в учебнике перевод процентов число идет через if, т.е.:
 ...
if srsUvelichenie >= 1.0:
srsUvelichenie /= 100
...
Помогите разобраться. Ведь выше записанный цикл
 while srsUvelichenie <= 0:
просто не даст на стадии ввода ввести не 0, не отрицательное число. Спасибо.
py.user.next
Видимо, это сделано для того, чтобы ты мог ввести проценты в виде дробного значения. 0.5 будет означать 50%, а 0.27 - 27%.
medusa_01
py.user.next
чтобы ты мог ввести проценты в виде дробного значения

Спасибо. Я понял.
medusa_01
Доброго времени сутиок. Появился очередной вопрос, если позволите. Задача такая:
 # Эта программа бросает кубики
import random
# Именованные переменные
MIN = 1
MAX = 6
def main():
    again = 'д'
    while again == 'д' or again == 'Д':
        print('Бросаем кубики')
        print('Значение граней:')
        print(random.randint(MIN, MAX))
        print(random.randint(MIN, MAX))
        again = input('Хотите бросить еще раз? (да = д): ')
main()

Программа работает, но мне захотелось ее немного “облагородить” - вывести количество попыток пользователя. И включились тормоза - не могу понять, как это реализовать. Через again не возможно, т.к. это строковая переменная. Не могли бы мне помочь? Спасибо.
vr
можно вот так наверное, но я сам новичок так что не уверен что это лучший ответ)
 # Эта программа бросает кубики
import random
# Именованные переменные
MIN = 1
MAX = 6
def main():
    again = 'y'
    a = 1
    while True :
        if again == 'y' or again == 'Y':
            print('Бросаем кубики')
            print('Значение граней:')
            print(random.randint(MIN, MAX))
            print(random.randint(MIN, MAX))
            print ('Бросок № ' + str(a))
            a += 1
            again = input('Хотите бросить еще раз? (да = y) (нет = n): ')
        if again == 'n' :
            break
               
main()
medusa_01
vr
я сам новичок так что не уверен что это лучший ответ)

А это не важно. просто мне было надо, чтобы программа выводили количество бросков. Поэтому взяв за основу Ваш алгоритм я получил следующую “конструкцию”:
 # Эта программа бросает кубики
import random
# Именованные переменные
MIN = 1
MAX = 6
def main():
    again = 'y'
    a = 1
    while True:
        if again == 'y' or again == 'Y':
            print('Бросаем кубики')
            print('Значение граней:')
            print(random.randint(MIN, MAX))
            print(random.randint(MIN, MAX))
            print('Бросок № ' + str(a))
            a += 1
            again = input('Хотите бросить еще раз? (да = y) (нет = n): ')
        if again == 'n':
            total = 0
            total = (total + a) - 1
            print('Вы бросали кубик', total, 'раза/раз')
            break
main()
Спасибо.)))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB