2009-09-24 3 views
2

Я пытаюсь создать базовую программу, которая будет генерировать число на основе переменных, введенных пользователем. ФормулаПеременные Python

a = b/(c * d) 

Это формула для нахождения удельной теплоемкости, тогда как b=energy, c=mass и d= change in temperature.

Так что моя проблема в том, что я не делаю эту программу для себя, в противном случае я мог бы просто присвоить каждый переменный в number- как:

b= 1200 
c= 13 
d= 2 

А потом делать a = a = b/(c * d).

Моя цель состоит в том, чтобы создать программу для других, которые еще не знают формулу, чтобы они могли просто вводить числа сами. Пример. Я хочу b = X. X - это номер, введенный пользователем программы. Тем не менее, я должен сначала определить X как переменную - я хочу, чтобы она была неизвестной - или на основе того, что входит человек. Я не хочу, чтобы b, c, или d, чтобы присвоить значения. Это очень простой процесс создания скриптов, который я знаю, но я новичок в Python.

+0

+1 не сложный вопрос ... но это не заслуживают downvotes для простоты. – bastianneu

ответ

0
b = float(raw_input("Please enter a value: ")) 
a = b/(c*d) 
print a 

raw_input() предлагает пользователю для ввода, если вы бежите это в консоли

float() попытки преобразовать параметр (в данном случае, пользовательский ввод) к поплавку. остальная часть должна быть довольно простой.

Дайте это попробовать. Добро пожаловать на Python :)

+0

Большое спасибо, я пробовал это, и я знаю, что сам скрипт должен работать. Моя проблема заключается в том, что при вводе b = float (raw_input («Введите значение для энергии:»)) В конечном итоге: b = float (raw_input («Введите значение для энергии:»)) Enter значение для энергии: Таким образом, я не могу на самом деле ничего там положить, иначе он будет присваивать B переменной того, что я ставлю. У меня есть чувство, что я должен положить что-то в начале моего сценария, распознавая его как программу или что-то в этом роде. Извините за мое невежество, еще раз я очень новичок в Python. Спасибо за всю помощь, ребята! – 2009-09-25 00:17:10

+0

@ Джордан: Ваш комментарий не имеет никакого смысла. Пожалуйста, перепишите его, чтобы он имел смысл и обновил ваш вопрос с помощью любой вашей * реальной * проблемы. –

4

Самый простой подход должен предшествовать формуле с фрагментом

b = input("Enter b:") 
c = input("Enter c:") 
d = input("Enter d:") 

несколько вещей, чтобы отметить:

  • это потребует консольного ввода-вывода, так что вы лучший старт сценарий с консоли
  • input() заставляет строку, введенную как eval() 'ed, что означает, что она обрабатывает процессы, как если бы это было выражение Python. Это полезно для чисел, но может иметь путаные побочные эффекты; рассмотрите возможность использования raw_input(), а также вместо float().
+2

Очень полезно предупреждать новичков Python, что 'input()' является опасным в Python 2.x и ранее. В Python3 они, наконец, исправили это, но это была давняя бородавка на его языке (с тех пор, как Гвидо задумал это из того, что было сосредоточено на обучении программированию). Python <3 выполняет * оценку * значений 'input()'. Это эквивалент 'eval (input())' в Python 3.x. Студенты должны быть предупреждены использовать 'raw_input()' или даже запустить свой код с 'input = raw_input', чтобы переименовать их, прежде чем они будут использоваться в их коде. –

6

Я думаю, что вы хотите что-то вроде этого:

b = float(raw_input("Energy? ")) 
c = float(raw_input("Mass? ")) 
d = float(raw_input("Change in temperature? ")) 

print "Specific heat: %f" % (b/(c * d)) 
  • raw_input() запрашивает у пользователя и возвращает Введенный значение,
  • поплавок() преобразует значение с плавающей точкой (если это возможно; если нет, это вызовет исключение и прекратит выполнение программы)
  • «% f» в последней строке форматирует аргумент как значение с плавающей запятой, где «аргумент» - это значение выражения, следующего за пределами% стринга г (т.е.'(Б/(с * d)))
+1

Конечно, это даже лучше, если бы мы обернуть, что в каких-то хороших обработках исключений: четкости GetNum (подсказка = «Введите число:»): результата = None в то время как результат None: попытка: результата = поплавок (raw_input (подсказка)) за исключением ValueError: print «Не удалось разобрать это. Попробуйте еще раз». прочее: перерыв результат возврата –

+0

Gah! Невозможно форматировать комментарии. Извините за уродство. :( –

0

это очень простой способ сделать это, и легко понять

b= float(raw_input("Enter the energy")) 
c= float(raw_input("Enter the mass")) 
d= float(raw_input("Enter change in temperature")) 

a = b/(c * d) 
print a 
Смежные вопросы