MacOS 10.11.6上的IDLE Python 3.7.1 Shell窗口中的以下代码片段导致语法错误。
解决方法是什么?
在Terminal Python 2.7.10或Python3中运行的相同代码不会导致错误。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<div class='post_wrapper'>
{%for p in posts%}
<div id='post_{{post.id}}'>
<p>{{p.author.username}} says:</p>
<p>{{p.body}}</p>
{%if p.upvotes%}
<button class='upvote' id='upvote_{{p.id}}'>Like <span id='upvotes_{{p.id}}'>{{p.upvotes}}</span></p>
{%else%}
<button class='upvote' id='upvote_{{p.id}}'>Like <span id='upvotes_{{p.id}}'>0</span></p>
{%endif%}
</div>
{%endfor%}
</div>
<script>
$(document).ready(function(){
$('.post_wrapper').on('click', '.upvote', function(){
var post_id = this.id.match('\\d+');
$.ajax({
url: "/update_like",
type: "get",
data: {post_id: post_id},
success: function(response) {
if (response.success === 'True'){
var like_val = parseInt($('#upvotes_'+post_id).text()) + 1;
$('#upvotes_'+post_id).text(like_val.toString());
}
else{
alert('You already liked that post!');
}
}
});
});
});
</script>
</html>
答案 0 :(得分:0)
答案通常是在异常消息中。您应该输入一个且只有一个语句来响应IDLE的语句提示。几周前,我对IDLE doc进行了编辑,以使其更加清晰。
使用IDLE的外壳,您可以输入,编辑和调用完整的语句。 大多数控制台和终端只能在一个物理线路上使用 时间。
将代码粘贴到Shell中时,它不会被编译,并且可能 执行直到击中Return。可以先编辑粘贴的代码。如果一个 将一个以上的语句粘贴到Shell中,结果将是 当将多个语句编译为一个语句时出现SyntaxError。
如果根据提示>>>
,键入import subprocess
并按回车键,则IDLE在用户进程中将语句发送给Python以执行导入。然后,IDLE出现一个新的>>>
提示。您输入了三个语句而没有触发执行。我唯一知道的方法是一次粘贴所有三个。 (如果您找到另一种方法,我想知道;-)。
要一次运行多个语句,请编辑或粘贴到文件中并运行它。我保留了一个用于此目的的tem.py文件。我通常使用Files =>最近的文件打开它。