Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [Python 2.7.2] Invalid syntax / 14 сообщений из 14, страница 1 из 1
14.10.2012, 15:01
    #37997546
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
Здравствуйте. Решил попробовать Питон, начал в 12 часов ночи, не могу оторваться до сих пор. В очередном небольшом скрипте допустил где-то ошибку, уже второй час сижу и не могу её найти, остановился на выводе, что я не знаю того, что Питон от меня хочет, может быть Вы увидите ошибку. Вот код
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
# -*- coding: cp1251 -*-
spisok = ['понедельник',
          'вторник',
          'среда',
          'четверг',
          'пятница',
          'суббота',
          'воскресенье']
''' enumerate - ф-ция позволяет
раскладывать список на порядковые
номера и соответсвующие им элементы '''
for index, string in enumerate(spisok):
    print index, string +"\n" ''' выводим пор.номера и элементы '''

l = int(len(spisok))

x = int(raw_input("Введите номер элемента, до которого будет вестись счёт: "))
for index, string in enumerate(spisok):
    indexs = [index] '''порядковые номера элементов списка
                      преобразовываем в список
                      [0, 1, 2, 3, 4, 5, 6, 7]'''
y = int(max(indexs))
print ("Максимальный порядковый номер списка = "+y)
if x > y:
    print ("Список не обладает таким кол-вом элементов\n")
else:
    x -= 1
    z = spisok[0:x]
    for index, string in enumerate(z):
    print string


Питон указывает мне на то, что ошибка в строке
Код: python
1.
print ("Список не обладает таким кол-вом элементов\n")


или до неё.. мои руки опускаются, но не закончив этот скрипт, я не продолжу задуманное уже сегодня, помогите
...
Рейтинг: 0 / 0
14.10.2012, 15:07
    #37997549
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
Проблема решилась, чудным образом, прошу помочь мне понять каким.

Вот этот скрипт работает:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
# -*- coding: cp1251 -*-
spisok = ['понедельник',
          'вторник',
          'среда',
          'четверг',
          'пятница',
          'суббота',
          'воскресенье']
# enumerate - ф-ция позволяет
#раскладывать список на порядковые
#номера и соответсвующие им элементы

for index, string in enumerate(spisok):
    print index, string +"\n" #выводим пор.номера и элементы
    
l = int(len(spisok)) #порядковые номера элементов списка
                      #преобразовываем в список
                      #[0, 1, 2, 3, 4, 5, 6, 7]

x = int(raw_input("Введите номер элемента, до которого будет вестись счёт: "))
for index, string in enumerate(spisok):
    indexs = [index] 
y = str(max(indexs))
print ("Максимальный порядковый номер списка = "+y)
if x > y:
    print ("Список не обладает таким кол-вом элементов\n")
else:
    x -= 1
    z = spisok[0:x]
    for index, string in enumerate(z):
        print string
...
Рейтинг: 0 / 0
14.10.2012, 17:53
    #37997655
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
Код: python
1.
2.
3.
    
    for index, string in enumerate(z):
    print string


Нет блока для цикла
...
Рейтинг: 0 / 0
14.10.2012, 17:57
    #37997659
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
Маф,

Нужно правильно использовать docstring 'и.
...
Рейтинг: 0 / 0
15.10.2012, 10:21
    #37998071
FishHook
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
Маф,

Никогда не делай так
1. print index
print ("Список не обладает таким кол-вом элементов\n")
И вот так
2. "Максимальный порядковый номер списка = "+y
...
Рейтинг: 0 / 0
17.10.2012, 15:38
    #38002708
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
FishHook,

почему?
...
Рейтинг: 0 / 0
17.10.2012, 15:39
    #38002709
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
Usman,

закомментировал в одинарные кавычки? в этом ошибка?
...
Рейтинг: 0 / 0
17.10.2012, 15:52
    #38002745
FishHook
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
МафFishHook,

почему?
1.
Потому что ты уже определись с версией питона. То ты принт как функцию юзаешь, то как оператор.
2.
Потому что строки - не изменяемые объекты и их конкатенация - это весьма дорогая операция. Для этого есть join и format.
...
Рейтинг: 0 / 0
17.10.2012, 15:54
    #38002747
FishHook
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
МафUsman,

закомментировал в одинарные кавычки? в этом ошибка?
Тройные кавычки имеют вполне определенную функцию - ими помечаются строки документации, не надо ими ничего комментировать, для комментариев есть #
...
Рейтинг: 0 / 0
17.10.2012, 16:39
    #38002890
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
NekZ,
блок нужен, разве? на хабре в статье увидел такой вид написания цикла
...
Рейтинг: 0 / 0
17.10.2012, 17:39
    #38003049
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
FishHook,

я не использовал print как ф-цию, я везде использовал его как оператор, просто оператор в функции
...
Рейтинг: 0 / 0
18.10.2012, 08:24
    #38003558
FishHook
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
МафFishHook,

я не использовал print как ф-цию, я везде использовал его как оператор, просто оператор в функции

А это что?

Код: python
1.
print ("Максимальный порядковый номер списка = "+y)
...
Рейтинг: 0 / 0
20.10.2012, 19:04
    #38006775
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
Мафзакомментировал в одинарные кавычки? в этом ошибка? Для docstring'ов также важен отступ (из соображений правильного стиля ):

Возможное решение:
Способ №1: Указать правильный отступ (как в текущем блоке for )
Код: python
1.
2.
3.
4.
5.
6.
x = int(raw_input("Введите номер элемента, до которого будет вестись счёт: "))
for index, string in enumerate(spisok):
    indexs = [index] 
    '''порядковые номера элементов списка
                      преобразовываем в список
                      [0, 1, 2, 3, 4, 5, 6, 7]'''

[Минус] Отступ открывающей тройной кавычки должне совпадать с закрывающей, если он не однострочный

Способ №2: Разделить точкой запятой:
Код: python
1.
2.
3.
4.
5.
x = int(raw_input("Введите номер элемента, до которого будет вестись счёт: "))
for index, string in enumerate(spisok):
    indexs = [index];'''порядковые номера элементов списка
                      преобразовываем в список
                      [0, 1, 2, 3, 4, 5, 6, 7]'''

[Минус] Точки-запятые рекомендуется использовать для разделения простых операторов.
В целях читабельности поступайте след. образом: одно выражение - одна строка

P.S.
Сорри, за задержку с ответом
...
Рейтинг: 0 / 0
07.11.2012, 18:22
    #38029162
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python 2.7.2] Invalid syntax
Usman,
спасибо, за ответ) теперь понял)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [Python 2.7.2] Invalid syntax / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]