【问题标题】:If-Else statement not asking for input in PythonIf-Else 语句不要求 Python 中的输入
【发布时间】:2020-03-01 23:55:20
【问题描述】:

我正在尝试用 Python 编写一个基本的 Twitter 抓取工具,虽然我拥有它以便它可以抓取硬编码术语,但我正在尝试将其设置为从用户输入中获取搜索字词。

虽然我的 if/else 语句在被询问时接受输入,但它无法运行,说明未定义 rawinput。 rawinput 在 if 语句中,我在下面包含了我的代码

我应该提到我对 Python 还很陌生。

我尝试从 if/else 中删除 rawinput 并将其分开,但同样的问题发生了。

userinp = input("Select search type.  1 = tweets.  2 = people")

if userinp == 1:
        entry = rawinput
        query = u'q='
elif userinp == 2:
        entry = rawinput
        query = u'f=users&vertical=default&q='

searchurl = baseurl + query + entry

预期结果是用户选择选项 1 或 2,然后被要求输入他们的搜索词。

结果是:

Select search type.  1 = tweets.  2 = people1
Traceback (most recent call last):
  File "Scrape.py", line 22, in <module>
    userentry = rawinput('enter search term')
NameError: name 'rawinput' is not defined

提前感谢您提供的任何帮助。

【问题讨论】:

标签: python selenium if-statement input


【解决方案1】:

请改用input(),不要忘记括号!

此外,input() 将您的输入转换为字符串,因此如果使用整数,您的if 条件将永远不会满足。考虑替换为if userinp == '1':elif userinp == '2':

【讨论】:

  • 啊,我认为在 Python 中输入仅适用于整数,而不适用于字符串条目。谢谢。
  • @Angus in python 2 input() 调用 eval(raw_input())。在 python3 中,raw_input 被重命名为 input,并且出于安全原因,python2 的 input 被删除
  • 当然if 语句不会按计划工作,因为userinp 永远不会是数字12。我们将得到字符串"1""2"
  • 这是一个重复的帖子。参考:*.com/questions/35168508/raw-input-is-not-defined 请关闭此位置
【解决方案2】:

应该是raw_input() 而不是原始输入。所以你的代码应该是这样的......

userinp = input("Select search type.  1 = tweets.  2 = people")

if userinp == 1:
        entry = raw_input()
        query = u'q='
elif userinp == 2:
        entry = raw_input()
        query = u'f=users&vertical=default&q='

searchurl = baseurl + query + entry

【讨论】:

    最近更新 更多