2016-12-27 7 views
0

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

Проблема заключается в том, что космический корабль перемещается на расстояние х со скоростью v в направлении пункта назначения с Земли. Я должен найти время, прошедшее с помощью стационарного наблюдателя на Земле, и время, прошедшее пассажиром на борту космического корабля. Вместо того, чтобы присваивать значения x и v, я должен разрешить пользователю вводить значения для x и v. Но я хотел бы разрешить пользователю выбирать, как они хотели бы вводить свои данные. Например, пользователь мог бы поставить v = некоторое число в метрах/сек или пользователь мог бы поместить v = a * c, где 0 ≤ a ≤ 1 и c = скорость света; Я хочу, чтобы пользователь решил, какой вход является предпочтительным.

Я понимаю, как попросить пользователя ввести значение. ex: x = float (ввод («На каком расстоянии пробежал космический корабль:»))

Но как я могу позволить пользователю решить, какой v они хотели бы ввести?

+0

Добро пожаловать на SO. Я предлагаю попробовать форматирование кода, чтобы читателям было легче понять вопрос и почему бы не ввести также «выбор стратегии ввода скорости» в переменную, а затем предложить соответствующее приглашение ввода скорости на основе этого значения? Кроме того, было бы очень полезно работать с примером кода. – Dilettant

+0

с оператором if. Вы можете дать пользователю 2 варианта. Выбор 1, используйте предустановленное значение a * c как v. Choice 2, предложите пользователю ввести v. Или вы можете анализировать данные. – TheLazyScripter

+0

Если блок else else https://www.tutorialspoint.com/python/python_if_else.htm – harshil9968

ответ

1

Possiblility 1: Два вопроса

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

Which input format is preferred? ([a]bsolute/[f]raction of c) > 

Затем с помощью if/else блока, чтобы проверить, является ли пользователь ввел a или f.

Впоследствии, задать другой вопрос

Enter the desired speed (number) > 

и преобразовывать входные плавать так же, как вы сделали выше (float(input(...)))

Возможность 2

Вы можете задать вопрос, как

Enter spaceship speed: 

и проверить, если последний символ wh ich вводится пользователем: c. Затем вы используете число как часть скорости света. Кроме того, вы используете это число как абсолютную скорость.

Чтобы получить последний символ строки, используйте

s = 'abc' 
lastcharacter = s[-1] 
+0

Спасибо. Мне особенно нравится второй метод, но я действительно ценю, что показываю вам несколько методов. – mikey