【问题标题】:How do I do simple user input in python? [duplicate]如何在 python 中进行简单的用户输入? [复制]
【发布时间】:2011-06-11 11:37:28
【问题描述】:

我只是在玩输入和变量。我正在尝试运行一个简单的功能:

slope = (y2-y1)/(x2-x1)

我想提示用户输入y2y1x2x1。最简单、最干净的方法是什么?

【问题讨论】:

    标签: python input user-input


    【解决方案1】:

    如果用户只在一行中输入输入,并且这些输入之间有空格作为分隔词,您可以这样写:

    val1, val2, val3 = raw_input().split(' ')
    

    现在,您可以将其更改为:

    val = float(val1)
    

    绝妙的技巧是,通过这种方式,您不会浪费空间来创建新列表并将值存储在其中,然后再获取它。

    【讨论】:

      【解决方案2】:

      您可以使用input() 函数提示用户输入,并使用float 将用户输入从字符串转换为浮点数:

      x1 = float(input("x1: "))
      y1 = float(input("y1: "))
      x2 = float(input("x2: "))
      y2 = float(input("y2: "))
      

      如果您使用的是 python 2,请改用 raw_input()

      【讨论】:

      • 我这样做了,我得到了这个错误:y2 = int(raw_input("y2: ")) NameError: name 'raw_input' is not defined
      • 你在使用 Python 3 吗?如果是这样,请使用input()
      【解决方案3】:

      这是最简单的方法:

       x1 = float(raw_input("Enter x1: "))
      

      注意raw_input() 函数返回一个字符串,用float() 将其转换为浮点数。如果你输入的不是数字,你会得到一个异常:

      >>> float(raw_input())
      a
      Traceback (most recent call last):
        File "<stdin>", line 1, in ?
      ValueError: invalid literal for float(): a
      

      如果您使用的是 Python 3(听起来像是),请使用 input 而不是 raw_input

      【讨论】:

        【解决方案4】:

        你可以使用:

        foo=input('Please enter a value:')
        

        字符串“请输入一个值:”将是您的消息,而 foo 将是您的变量。

        【讨论】:

        • ...如果您在提示后输入 import os, sys; os.unlink(sys.argv[0]) 而不是数字,您的脚本将自行删除(至少在 Python 2.x 中)。
        • 我的回答与 Python 3 有关。
        • 我的评论还是不正确的。我只是想指出这在 Python 2.x 中本质上是不安全的。对于 Python 3.x,您应该将结果转换为浮点数。 (上面的正确版本应该是__import__("os").unlink(__import__("sys").argv[0]),因为只有一个表达式会被计算。)
        猜你喜欢
        • 2021-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        • 2021-11-22
        • 1970-01-01
        相关资源
        最近更新 更多