|
Маниго 0 / 0 / 0 Регистрация: 22.08.2015 Сообщений: 4 |
||||
|
1 |
||||
|
22.08.2015, 16:11. Показов 13745. Ответов 9 Метки нет (Все метки)
Приветствую всех, возникла вот такая проблемка, взялся поучить Python, поставил версию 3.4.3, из литературы выбрал Саммерфилд — Программирование на Python 3.2009. Все было прекрасно и понятно пока не столкнулся вот с такой проблемой:
SyntaxError: invalid syntax Реально не понимаю в чем проблема, все по книге, отступы автоматом ставит. Помогите советом.
__________________
0 |
|
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
22.08.2015, 16:11 |
|
Ответы с готовыми решениями: В чем ошибка? Ругается на elif
Elif в Python 3.5.2 if pH==7.0: #ifdef, #elif defined и #else 9 |
|
2739 / 2342 / 620 Регистрация: 19.03.2012 Сообщений: 8,832 |
|
|
22.08.2015, 16:35 |
2 |
|
отступы автоматом ставит
все по книге Если бы все по книге было, то все работало бы.
0 |
|
Marinero Модератор 2792 / 2035 / 682 Регистрация: 02.03.2015 Сообщений: 6,509 |
||||
|
22.08.2015, 16:37 |
3 |
|||
|
Ну вот если бы Вы и сами код нормально отформатировали(поместив его в теги [PYTHОN][/PYTHОN]), то и мы бы посмотрели
0 |
|
alex925 2739 / 2342 / 620 Регистрация: 19.03.2012 Сообщений: 8,832 |
||||
|
22.08.2015, 16:38 |
4 |
|||
0 |
|
Маниго 0 / 0 / 0 Регистрация: 22.08.2015 Сообщений: 4 |
||||
|
22.08.2015, 16:43 [ТС] |
5 |
|||
|
у меня он выглядит так
0 |
|
alex925 2739 / 2342 / 620 Регистрация: 19.03.2012 Сообщений: 8,832 |
||||
|
22.08.2015, 16:46 |
6 |
|||
|
это это автоматом ставит отступы? «кто это» имелось ввиду, опписался
у меня он выглядит так Вот из-за того, что он у тебя так выглядит, ничего и не работает
у меня он выглядит так А должен так
0 |
|
0 / 0 / 0 Регистрация: 22.08.2015 Сообщений: 4 |
|
|
22.08.2015, 16:48 [ТС] |
7 |
|
Python 3.4.3 Shell
0 |
|
2739 / 2342 / 620 Регистрация: 19.03.2012 Сообщений: 8,832 |
|
|
22.08.2015, 16:51 |
8 |
|
В этом редакторе Это не редактор, а интерпретатор запущенный в интерактивном режиме Ну, а вообще, то что ты вбиваешь код в интерактивном режиме мало, что меняет, отступы все равно тебе нужно точно также ставить. Так что смотри на то, что я тебе кинул и построчно вбивай также и все будет работать.
0 |
|
0 / 0 / 0 Регистрация: 22.08.2015 Сообщений: 4 |
|
|
22.08.2015, 16:54 [ТС] |
9 |
|
Сделал, через backspace, по другому не получается, все работает, Благодарю!
0 |
|
71 / 67 / 6 Регистрация: 08.08.2013 Сообщений: 286 Записей в блоге: 8 |
|
|
22.08.2015, 20:05 |
10 |
|
Скачай pycharm и радуйся жизни.
0 |
|
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
22.08.2015, 20:05 |
|
Помогаю со студенческими работами здесь Python 3.2 оператор if else elif
Покажите на примерах, разъясните, как работают с директивами #if,…
Как сделать if … elif … else … ? Словарь с функциями вместо elif elif, invalid syntax, math Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 10 |
Operating system or device — Godot version:
Regression on 2.1.3 rc2 on rc1 it was fine
Issue description:
My scripts in 2.1.3 rc2 are not parsing properly, I have a lot of «Error parsing expression, misplaced X»
It apply to const, sometimes functions and possibly other things as well.
Steps to reproduce:
- Create new node, attach a script to it.
- Fill the script with content:
extends Node
#physic layers
const LAYER_0_ALL = 0;
const LAYER_12_HERO = 12;
static func someFunc(someParam):
if(someParam==LAYER_0_ALL): return LAYER_12_HERO;
if(someParam==LAYER_12_HERO): return LAYER_0_ALL;
# PRICES
const PRICE_STONE_BUY = 50; #THIS IS LINE 12
const PRICE_STONE_SELL = 25;
const PRICE_STONE_FACTORY = 75;
- Observe parsing error:
error (12,1): Error parsing expression, misplaced: const
Link to minimal example project:
All 11 comments
Likely related to the cherry-picking of the enum feature, cc @Faless.
Likely related to the cherry-picking of the enum feature
Nope, I encountered that error before applying that patch.
I also reverted it, the bug is still there, I’ll try a bisect to find the causing commit
So, after 7 bisection steps, I found this commit 0c650c2511a69dc8af1069546aad4ff4d989923d to be the one causing the issue @akien-mga @bojidar-bg .
The bug was not present in previous revisions
Thanks for bisecting @Faless. I’ll probably revert 0c650c2 in the 2.1 branch. The bug might also be in master then, but I’ll let @bojidar-bg check.
Ouch, sorry…
I can confirm it is still present on pretty-recent master. Reopening
@bojidar-bg so you could check better, another test case for you 
extends Sprite
var variable;
func _notification(what):
if (what == NOTIFICATION_INSTANCED):
pass #all internal initialization
elif(what == NOTIFICATION_READY):
if("resourceTypesdf"=="asd"): variable = "no new line here is a problem";
func manualInit(in3DPos, inDest2DPoint, inAmount): #HERE is an: error parsing expresion, misplaced: func
var someOtherCodeHere;
Ouch, would check again tomorrow.
@kubecz3k Can confirm it is fixed by my changes, other ideas?
@bojidar-bg no dont have any other ideas, thanks! 
Was this page helpful?
0 / 5 — 0 ratings
Нуб здесь. Я не могу исправить ошибку «неуместное другое» в приведенном ниже коде. Этот код должен собирать и вычислять оценку за семестр и давать замечания в зависимости от оценки. Любая помощь приветствуется.
#include <conio.h>
#include <stdio.h>
main()
{
char name[20];
int exam, q1, q2, q3, ass, sw, att, avgq, CS, TG;
clrscr();
printf("Name: ");
gets(name);
printf("nExam: ");
scanf("%d", &exam);
printf("nQuiz #1: ");
scanf("%d", &q1);
printf("nQuiz #2: );
scanf("%d",&q2);
printf("nQuiz #3: ");
scanf("%d",&q3);
printf("nAssignment: ");
scanf("%d",&ass);
printf("nSeatwotk: ");
scanf("%d",&sw);
printf("nAttendance: ");
scanf("%d",&att);
CS=(0.4*ass)+(0.4*sw)+(0.2*att); //class standing//
avgq=(q1+q2+q3)/3; //average quiz//
TG=(0.4*exam)+(0.3*avgq)+(0.3*CS); //term grade//
if(TG>=90)
printf("Term Grade: %d",TG);
printf("Remarks: EXCELLENT");
else if (TG>=80 && TG<=89)
printf("Term Grade: %d",TG);
printf("Remarks: SATISFACTORY");
else if (TG>=76 && TG<=79)
printf("Term Grade: %d",TG);
printf("Remarks: GOOD");
else if (TG==75)
printf("Term Grade: %d",TG);
printf("Remarks: PASSING");
else if (TG<74)
printf("Term Grade: %d",TG);
printf("Remarks: FAILED");
else
printf("Invalid Input. Try again");
getch();
return 0;
}
-2
Решение
э-э-э! нуб оповещение! шучу, нам всем надо с чего-то начинать;)
так что не волнуйтесь, прекрасная дева! проблема лежит здесь:
когда вы объявляете оператор if, вы должны заключить тело оператора if в фигурные скобки. Если вы этого не сделаете, будет запущена только первая строка под оператором if. Вот пример:
// here, both do something 1 and do something 2 are being run in the if statement
if (something) {
do something 1;
do something 2;
}
// here, only do something 1 will get run inside the if statement
if (something)
do something 1;
do something 2;
Итак, вернемся к вашей проблеме. Вы должен поместите фигурные скобки {} вокруг кода в операторе if, если тело оператора if состоит из более чем 1 строки.
if (something)
do something 1;
do something 2;
else
do something 3;
эквивалентно
if (something)
do something 1;
do something 2;
else do something 3;
Вот почему вы еще оператор выдает ошибку. Каждый должен иметь перед собой if.
1
Другие решения
C ++ не использует отступы для определения концов операторов. Вам нужны фигурные скобки, если вы хотите более одного утверждения.
Вместо:
if (a)
b;
c;
else
d;
Использование:
if (a) {
b;
c;
} else {
d;
}
0
Если у вас есть более 1 строки под if или else, они должны быть заключены в фигурные скобки, например так:
if(TG>=90)
{
printf("Term Grade: %d",TG);
printf("Remarks: EXCELLENT");
}
else if (TG>=80 && TG<=89)
{
printf("Term Grade: %d",TG);
printf("Remarks: SATISFACTORY");
}
0

Не срабатывает elif
это это автоматом ставит отступы?