#python
#python
Вопрос:
Я пытаюсь создать простой калькулятор python для расчета дозы лекарства.
Для образца весом 60 кг. Доза должна быть (60 * 15), разделенная на 80. Предполагаемый результат должен составлять 11,25 флакона.
Тем не менее, я получаю 7.575757575757576e 27. Пожалуйста, помогите мне диагностировать проблему здесь. Спасибо
Вот пример кода, который я использовал.
# This is a program to calculate dose for IV Drug X
print('Hello Doctor!')
print('What is your name?')
myName= input()
print('It is good to meet you, ' 'Dr.' myName)
print('What is the weight of patient?') # Patient weight
ptWeight = input()
print ('Number of vial is ' str(int((ptWeight)*15) / 80) ' vials.')
И вот результат, который я получил.
Hello Doctor!
What is your name?
Brian
It is good to meet you, Dr.Brian
What is the weight of patient?
60
Number of vial is 7.575757575757576e 27 vials.
Комментарии:
1. Вы умножаете строку на 15, что приводит к «60606060 …» и так далее. Сначала преобразуйте в int, затем умножьте.
2. Прочитайте эту статью для получения советов по отладке. Также обратите пристальное внимание на типы значений в вашем коде (например,
str
илиint
.3. Также всегда будьте осторожны с тем, какие числа вы используете. В вашем коде неясно, как вы переходите от kg к vials. Вы можете объяснить в комментариях, или вы можете присвоить значения промежуточным переменным и использовать их, например
dose_per_kg = 15
, илиdose_per_vial = 80
. Это позволяет увидеть, что единицы измерения отменяются, как вkg * dose / kg = dose
иdose / (dose / vial) = dose * vial / dose = vials
.
Ответ №1:
Вы умножаете строку
Попробуйте это:
print ('Number of vial is ' str(int(ptWeight)*15 / 80) ' vials.')
Ответ №2:
Вы умножаете как жало. Попробуйте это вместо
print('Hello Doctor!')
print('What is your name?')
myName= input()
print('It is good to meet you, ' 'Dr.' myName)
print('What is the weight of patient?') # Patient weight
ptWeight = int(input())
vitals = round(int((ptWeight)*15) / 80,2)
print ('Number of vial is ' str(vitals) ' vials.')
если вы хотите, чтобы значение было точным до десятичных знаков, используйте это
vitals = int((ptWeight)*15) / 80
синтаксис функции round()
round(number, places)