Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 26, 2021 14:49:29

medusa_01
Зарегистрирован: 2020-11-14
Сообщения: 28
Репутация: +  1  -
Профиль   Отправить e-mail  

Задачка для начинающего

Уважаемые господа. Мне иребуется не помощь, а пояснение, т.к. я что-то не улавливаю. Задача - необходимо составить программу в которой пользователь вводил число особей, количество дней на размножение и среднесуточный прирост в %. Вот код, который я написал:

 # Программа увеличения популяции
# Инициализация
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, не отрицательное число. Спасибо.

Отредактировано medusa_01 (Апрель 26, 2021 14:50:55)

Офлайн

#2 Апрель 26, 2021 15:08:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 7754
Репутация: +  720  -
Профиль   Отправить e-mail  

Задачка для начинающего

Видимо, это сделано для того, чтобы ты мог ввести проценты в виде дробного значения. 0.5 будет означать 50%, а 0.27 - 27%.



Офлайн

#3 Апрель 30, 2021 09:59:00

medusa_01
Зарегистрирован: 2020-11-14
Сообщения: 28
Репутация: +  1  -
Профиль   Отправить e-mail  

Задачка для начинающего

py.user.next
чтобы ты мог ввести проценты в виде дробного значения

Спасибо. Я понял.

Офлайн

#4 Июль 22, 2021 17:23:47

medusa_01
Зарегистрирован: 2020-11-14
Сообщения: 28
Репутация: +  1  -
Профиль   Отправить e-mail  

Задачка для начинающего

Доброго времени сутиок. Появился очередной вопрос, если позволите. Задача такая:

 # Эта программа бросает кубики
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 не возможно, т.к. это строковая переменная. Не могли бы мне помочь? Спасибо.

Отредактировано medusa_01 (Июль 22, 2021 17:28:02)

Офлайн

#5 Июль 22, 2021 19:25:29

vr
Зарегистрирован: 2021-04-14
Сообщения: 21
Репутация: +  1  -
Профиль   Отправить e-mail  

Задачка для начинающего

можно вот так наверное, но я сам новичок так что не уверен что это лучший ответ)

 # Эта программа бросает кубики
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()

Отредактировано vr (Июль 22, 2021 19:28:25)

Офлайн

#6 Июль 24, 2021 13:01:12

medusa_01
Зарегистрирован: 2020-11-14
Сообщения: 28
Репутация: +  1  -
Профиль   Отправить e-mail  

Задачка для начинающего

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()
Спасибо.)))

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version