Python是/否用户输入

时间:2016-03-15 17:31:37

标签: python python-2.7 input

我正在尝试创建用于写入文件的用户输入当前代码有效但我必须用''围绕它们写我的答案无论如何我只能编写是或Y而不必包含''

Join = input('Would you like to write to text file?\n')
if Join in ['yes', 'Yes']:
    for key, value in ip_attacks.iteritems(): #for key(the IPAddress) and value(the occurrence of each IPAddress) in ip_attacks 
        if value > 30: #if the value (number of occurrences) is over 30  
            myTxtFile.write('\n{}\n'.format(key)) #then we want to write the key(the IPAdress) which has been attack more than 30 times to the text file
else:
    print ("No Answer Given")

4 个答案:

答案 0 :(得分:3)

改为使用raw_input

Join = raw_input('Would you like to write to text file?\n')

raw_input获取输入作为字符串的内容,而input获取确切的用户输入并将其评估为Python。您之所以必须放置"是"而不是是因为您需要将输入evalute作为字符串。 raw_input表示您不需要这样做。

Python 3.x的注释

在Python 3.x中,

raw_input已更改为input。如果您需要input的旧功能,请改用eval(input())

答案 1 :(得分:2)

不要在Python 2.x中使用input;使用raw_inputinput等同于eval(raw_input(...)),这意味着您必须键入一个形成有效Python表达式的字符串。

在Python 3中,raw_input已重命名为input,而前input已从该语言中删除。 (您很少想将输入作为表达式进行评估;当您这样做时,您可以自己调用eval(input(...))。)

答案 2 :(得分:0)

请改用raw_input。请参阅docs

所以在你的第一行你会使用:

Join = raw_input('Would you like to write to text file?\n')

答案 3 :(得分:0)

您可以更改if语句以使用lower()或upper()与字符串进行比较,而不必使用“yes”或“y”周围的单引号,如下所示

if Join.lower() == 'yes' or Join.lower() == 'y':

如果使用Python3,请尝试:

Join = input('Would you like to write to text file?\n')
if Join.lower() == 'yes' or Join.lower() == 'y':
    for key, value in ip_attacks.iteritems(): #for key(the IPAddress) and value(the occurrence of each IPAddress) in ip_attacks
        if value > 30: #if the value (number of occurrences) is over 30
            myTxtFile.write('\n{}\n'.format(key)) #then we want to write the key(the IPAdress) which has been attack more than 30 times to the text file
else:
    print ("No Answer Given")

否则,如果使用Python2,正如其他人所说,你会想要使用raw_input()而不仅仅是input()