我在一小时前在我的一个python程序中添加了一个输入函数,并使用:
public void func(View view)
{
EditText textfield=(EditText) findViewById(R.id.input);
String msg =textfield.getText().toString();
HashMap<Character,Character> mapping=new HashMap<Character,Character>();
mapping.put('a','.');
mapping.put('b',',');
mapping.put('c','p');
mapping.put('d','q');
mapping.put('e','g');
mapping.put('f','7');
mapping.put('g','0');
mapping.put('h','a');
mapping.put('i','f');
mapping.put('j','i');
mapping.put('k','z');
mapping.put('l','o');
mapping.put('m','r');
mapping.put('n','y');
mapping.put('o','x');
mapping.put('p','-');
mapping.put('q','*');
mapping.put('r','_');
mapping.put('s','w');
mapping.put('t','b');
mapping.put('u','l');
mapping.put('v','e');
mapping.put('w','h');
mapping.put('x','j');
mapping.put('y','v');
mapping.put('z','6');
int len=msg.length();
helper a=new helper();
for(int i=0;i<len;i++)
{
if(msg.charAt(i)>=97&&msg.charAt(i)<=122)
a.answer[i] = mapping.get(msg.charAt(i));
else
a.answer[i]=msg.charAt(i);
}
msg=a.toString();
//now encoded string is ready
TextView out=(TextView) findViewById(R.id.output);
out.setText(msg);
}
class helper{
public char[] answer;
public String toString(){
return " "+answer;
}
}
我收到了这个非常烦人的错误消息,我不明白:“hi”无法识别。 PS。 “嗨是我在输入框中写的”。
我不明白为什么input()不再有效。它应该像以前一样工作。我进入了我的主python文件夹,并尝试从前一段时间运行另一个程序,其中有一个输入,并得到相同的结果 - 所有带有input()的程序都在之前工作!为什么dosen't python不再能识别输入函数是什么?真的很奇怪。
我已经在互联网上搜索了一个答案,但没有结果,我来堆栈溢出寻求帮助。
与此同时,我无能为力。我现在很困惑。
答案 0 :(得分:0)
正如Mehdi Pourfar所说,你应该在python2中使用raw_input
,在python3中使用input
。
python2
> help(input)
input(...)
input([prompt]) -> value
Equivalent to eval(raw_input(prompt)).
python3
> help(input)
input(prompt=None, /)
Read a string from standard input. The trailing newline is stripped.
...
python2中input
的示例
>>> def foo(): print('foo called')
...
>>> input('> ')
> bar
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'bar' is not defined
>>> input('> ')
> foo
<function foo at 0x7f24ff7ee6e0>
>>> input('> ')
> foo()
foo called