我正在尝试创建用于写入文件的用户输入当前代码有效但我必须用''围绕它们写我的答案无论如何我只能编写是或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")
答案 0 :(得分:3)
改为使用raw_input
:
Join = raw_input('Would you like to write to text file?\n')
raw_input
获取输入作为字符串的内容,而input
获取确切的用户输入并将其评估为Python。您之所以必须放置"是"而不是是因为您需要将输入evalute作为字符串。 raw_input
表示您不需要这样做。
raw_input
已更改为input
。如果您需要input
的旧功能,请改用eval(input())
。
答案 1 :(得分:2)
不要在Python 2.x中使用input
;使用raw_input
。 input
等同于eval(raw_input(...))
,这意味着您必须键入一个形成有效Python表达式的字符串。
在Python 3中,raw_input
已重命名为input
,而前input
已从该语言中删除。 (您很少想将输入作为表达式进行评估;当您这样做时,您可以自己调用eval(input(...))
。)
答案 2 :(得分:0)
答案 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()