【问题标题】:Allowing user to choose an input允许用户选择输入
【发布时间】:2016-12-27 12:33:59
【问题描述】:

我正在尝试通过编写基本物理问题的解决方案来提高我的 Python 编程技能。

问题表明,一艘宇宙飞船正以速度 v 从地球向目的地行驶距离 x。我要找出地球上一个静止的观察者经过的时间和宇宙飞船上的一名乘客经过的时间。我不是为 x 和 v 赋值,而是允许用户输入 x 和 v 的值。但是,我希望允许用户选择他们想要输入数据的方式。例如,用户可以输入 v = 以米/秒为单位的某个数字,或者用户可以输入 v = a*c 其中 0 ≤ a ≤ 1 且 c = 光速;我想让用户决定首选哪个输入。

我了解如何要求用户输入值。 前任: x = float(input("飞船经过了多少距离:"))

但是我怎样才能让用户决定他们想输入哪个 v?

【问题讨论】:

  • 欢迎来到 SO。我建议尝试代码格式化,让读者更容易理解问题,为什么不将“速度输入策略选择”也输入到变量中,然后根据该值提供匹配的速度输入提示?一些尽力而为的示例代码也会很棒。
  • 带有 if 语句。您可以给用户 2 个选择。选项1,使用预设值a*c作为v。选项2,提示用户输入v。也可以解析数据。

标签: python python-3.x input user-input


【解决方案1】:

可能性1:两个问题

input(...) 返回一个字符串。因此,您可以询问用户首选哪种输入样式,à la

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:

并测试用户输入的最后一个字符是否为c。然后你用这个数字作为光速的分数。否则,您使用该数字作为绝对速度。

要获取字符串的最后一个字符,请使用

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

【讨论】:

  • 谢谢。我特别喜欢第二种方法,但我非常感谢向您展示多种方法。
猜你喜欢
  • 2011-03-13
  • 2017-02-08
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 2019-05-14
  • 1970-01-01
  • 2016-06-19
  • 2021-02-08
相关资源
最近更新 更多