1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647

Могут ли пробелы в языке Python стать причиной ошибки?

21.11.2018, 18:39. Показов 7453. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
скажите, могут ли пробелы между операторами языка или строками быть причиной вот этой ошибки.
IndentationError: expected an indented block
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2018, 18:39
Ответы с готовыми решениями:

Может ли блок питания стать причиной лагов?
Здравствуйте. В последнее время стали лагать игры (Watch_Dogs, Dota 2). Грешил на температуру (76 градусов). Поменял кулер, температура...

Может ли стать неисправная видюха причиной выхода из строя мамки?
Отдал товарищ видюху. У него накрылась мамка и старая видюха не подошла к новой материнке. Разъем не тот. Обнаружил на видюхе...

Что есть причиной ошибки?
Здравствуйте. Задача: Функция, принимает в качестве параметров: многозначное целое число, символ – разделитель. Возвращает строку...

48
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
23.11.2018, 13:52
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от saladdd Посмотреть сообщение
как неиспользовался вот же
Это если будет ошибка. А если нет?
При нормальном выполнении кода ошибок быть не должно - и тогда строчка бессмысленна.
Я же вам говорю - в вашем коде нет логики. Поэтому все так печально.
И сколько раз мне еще повторять, что писать контекстный менеджер без вложенного блока нельзя?
У вас там синтаксическая ошибка, но вы до сих пор не понимаете почему.
Посмотрите на пример Black Fregat, может хоть что-то у вас прояснится.

P.S. Вам пока бесполезно писать коды - вы синтаксис до сих пор не поняли. Возьмите Лутца и читайте, читайте, читайте....
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
23.11.2018, 14:49  [ТС]
Garry Galler, лутса читаю , но там нету простых примеров.

Добавлено через 21 минуту
Garry Galler, синтаксис я действительно полностью не понял , до конца , но меня воодушевляет то что очень много документации хотя каждая из них написана по своему.
да и где можно посмтреть в Марк лутсе или не в марк лутсе, как правильно ставить отступы с примерами.
Именно с примерами.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
23.11.2018, 15:20
Изучаем Python.
Часть III Инструкции и синтаксис
Гл. 10 Ведение в инструкции.
Гл. 11 Присваивания, выражения
Гл. 12 ...
Гл. 13 ...
и т.д.

Вы уже должны были дойти до этого и раз пять перечитать, если сразу не устаканилось.
Я у Лутца синтаксическую часть читал по диагонали, потому что до Python уже писал на языке с отступами и похожим синтаксисом. Этого мне хватило, чтобы понять Python c полуслова.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
23.11.2018, 16:07  [ТС]
Garry Galler, как вам повезло
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
24.11.2018, 16:24  [ТС]
Garry Galler, моглибы вы уточнить название книги у меня есть:
1.Бизли Д. - Python. Подробный справочник (4-е изд.) - 2010.pdf
2.Марк Лутц - Программирование на Python. Том 1.pdf
3.Марк Лутц - Программирование на Python. Том 2.pdf
4.Простой Python.pdf
5.Mark_Lutts_-_Programmirovanie_na_Python_4-e_izd.pdf
спасибо!
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
24.11.2018, 17:02
Я имел ввиду первую книгу Лутца - Изучаем Python. Вторую - Программирование на Python - нужно читать после первой, кроме случая, если синтаксис языка не вызывает вопросов, либо пройден по другой книге или документации.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
25.11.2018, 12:08  [ТС]
Garry Galler, Да и кстате почему вы счетаите , что в коде нет логики?
Если мне надо просто переписать из лога всё в cvs файл, чтобы в дальнейшем было легко работать.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
25.11.2018, 12:52
Цитата Сообщение от saladdd Посмотреть сообщение
почему вы счетаите , что в коде нет логики
Сравните свой код с тем вариантом (в предположении, что вы хотите этого), который вам написал Black Fregat .
В нем есть логика. То есть правильная последовательность необходимых операций. В вашем коде - нет.
Но вы этого не понимаете, потому что не знаете как выделять логику блоками, а блоки - отступами.
1
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
25.11.2018, 13:37  [ТС]
Garry Galler,
Да black_frigate отличный ко написал спасибо ему.
Python
1
2
3
4
5
6
7
8
9
10
   try:
    with open('access_log.csv', 'w', newline="") as file:
        writer=csv.writer(file)
        with open('access_log','r') as f:
            for line in f:
                token=line.replace(' - - ', ' ').split()
                writer.writerow(token)
    data = pd.read_csv('access_log.csv')
   except Exception as e:
    print(e)
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
26.11.2018, 23:26  [ТС]
Garry Galler,
скажите почему если поставить
Python
1
 print(line)
или
Python
1
print(token)
на экран ничего не выводится
конечный файл не создаётся , даже изначальный файл нечитается выходит.
Python
1
2
3
4
for line in f:
                token=line.replace(' - - ', ' ').split()
                print(line)
                writer.writerow(token)
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
27.11.2018, 00:34
access_log пустой.
Если это не так - покажите скрин выполнения этой команды в IDLE:
Python
1
open('access_log','r').readlines()[:10]
Добавлено через 1 минуту
P.S. Почему у вас пробелы снова скачут? В примере Black Fregat все нормально - у вас опять какая-то ерунда.
Число пробелов должно в отступе должно быть всегда одинаковым. Не ставьте их вручную.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
27.11.2018, 03:44  [ТС]
Garry Galler,
Python
1
2
3
4
5
6
7
8
9
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "copyright", "credits" or "license()" for more information.
>>> open('access_log','r').readlines()[:10]
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    open('access_log','r').readlines()[:10]
FileNotFoundError: [Errno 2] No such file or directory: 'access_log'
>>>
0
151 / 86 / 35
Регистрация: 05.08.2017
Сообщений: 257
27.11.2018, 07:48
Питон говорит что нету такого файла
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
27.11.2018, 23:46  [ТС]
Resistanse, в чём же может дело права стоят все на чтение и запись.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
28.11.2018, 00:00
Цитата Сообщение от saladdd Посмотреть сообщение
No such file or directory
Вы путь до файла не указали. Поэтому он и не найден. С чего вы решили, что python должен его найти сам?
Путь можно не указывать только в том случае, если вы гарантированно знаете какая директория на момент запуска скрипта является рабочей (а она может быть какой угодно) и что она совпадает с каталогом файла.
Либо рабочую директорию можно изменить прямо в скрипте, сделав ее равной директории скрипта или иного файла.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
28.11.2018, 00:09  [ТС]
Garry Galler, но раньше всё работало , а что такое изменилось в такое в скрипте, что сейчас он работает по другому.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
28.11.2018, 00:15
Цитата Сообщение от saladdd Посмотреть сообщение
а что такое изменилось в такое в скрипте
Вы его запустили из другой рабочей директории. Вот что поменялось.
Я же вам написал - не бывает так, чтобы рабочая директория для скрипта была всегда одной и той же.
Рабочая директория - это вовсе не каталог, где он находится.
Она меняется в зависимости от способа запуска программы. Из cmd\bash - будет одна рабочая директория (та, которую устанавливает сама оболочка), из IDE - другая, из IDLE - третья.
Ну что я вам объясняю - это же азы курса Операционных систем...
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
28.11.2018, 04:01
Garry Galler, я Вас зауважал. Это какое нужно иметь терпение и одновременно уважение к новичку, чтобы, являясь профессионалом высокого уровня, так долго объяснять новичку базовое понятие синтаксиса языка Python. Ему просто нужно взять книгу Лутц М. "Изучаем Python" стр.328-332 (которую можно скачать из интернета) или любой другой учебник. И прочитать про структуру текста программы на Python. Это основа, с которой нужно начать изучать составные инструкции Python.
Вот что пишет Лутц об отступах в составных инструкциях (блоках):
" Интерпретатор не накладывает ограничений на то, как выполняются отступы (для этого можно использовать символы пробела или символы табуляции), и на величину отступов (допускается использовать любое число пробелов или символов табуляции). При этом отступ для одного вложенного блока может существенно отличаться от отступа для другого блока. Синтаксическое правило состоит лишь в том, что все инструкции в пределах одного блока должны иметь один и тот же отступ от левого края. Если это не так, будет получена синтаксическая ошибка, и программный код не будет работать, пока вы не исправите отступ. Наконец, имейте в виду, что практически любой текстовый редактор с дружественным (для программистов) интерфейсом обладает встроенной поддержкой синтаксической модели языка Python. В Python-среде разработки IDLE, например, отступы оформляются автоматически1, когда начинается ввод вложенного блока; нажатие клавиши Backspace (забой) возвращает на один уровень вложенности выше, а кроме того, IDLE позволяет настроить величину отступов во вложенном блоке.
Нет никаких стандартных требований к оформлению отступов: чаще всего используются четыре пробела или один символ табуляции на каждый уровень вложенности; вам самим решать, какой ширины отступы вы будете использовать. Выполняйте отступ вправо, чтобы открыть вложенный блок, и возвращайтесь на предыдущий уровень, чтобы закрыть его. Вообще говоря, недопустимо смешивать символы табуляции и пробелы для оформления отступов в одном и том же блоке, если делать это не единообразно. Для оформления отступов в блоке используйте либо символы табуляции, либо пробелы, но не одновременно те и другие. Вложенные инструкции объединяются в блоки по величине отступов. Тело блока завершается либо с концом файла, либо с первой инструкцией, имеющей меньший отступ.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
03.12.2018, 04:50  [ТС]
Garry Galler, скажите но я проставил все пути , проверил есть ли файл в нужной директории и он есть права вот такие
вот права на файл
Bash
1
2
vladislav@saladdd:~/Документы/python$ ls -l access_log
-rwxrwxrwx 1 vladislav vladislav 3060588 дек  7  2017 access_log
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
32
33
34
35
36
37
38
import sys
import os
import csv
import pandas as pd
from var_dump import var_dump
from collections import defaultdict
ip_new={} 
bad_ip = {}
rows = defaultdict(list)
print(os.getcwd())
print(os.listdir())
def save(text):     
  handle = open(".htaccess", "a")
  handle.write("allow from "+text+"\n")
  handle.close()
  
def is_there_such_ip(ip):
   
   handle = open(".htaccess", "r")
   data=handle.read()
   handle.close()  
   if(data.find(ip)>-1):
      return True
   else:return False
   
 
   try:
    with open(os.getcwd()+'access_log.csv', 'w') as file:
        writer=csv.writer(file)
 
        with open(os.getcwd()+'access_log','r') as f:
            for line in f:
                token=line.replace(' - - ', ' ').split()
                print(line)
                writer.writerow(token)
    data = pd.read_csv('access_log.csv')
   except Exception as e:
    print(e)
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
03.12.2018, 08:55
Цитата Сообщение от saladdd Посмотреть сообщение
Python
1
open(os.getcwd()+'access_log','r')
Вы уверены, что эта конструкция вставит правильный разделитель между именем папки и файла?
Подозреваю, они просто слились. Используйте
Python
1
os.path.join(os.getcwd(), 'access_log')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2018, 08:55

Как вещественные числа могут стать целыми?
Ввести одномерный массив вещественных чисел. Если все элементы исходного массива, имеющие целое значение стоят на четных местах, то создать...

Могут ли сведения о готовящемся теракте стать поводом объявления войны?
Какие сведения и какие действия одного государства или ряда государств позволяют другому государству напасть - первым объявить войну? ...

Что может быть причиной ошибки в Structural Equation Modeling?
В общем есть 6 временных рядов длинной 10. Я захожу в Structural Equation Modeling и выбираю Path Wizards-&gt;Structural modeling. В первом...

Что является причиной ошибки после завершения всех операций? (динамический массив)
Что является причиной ошибки после завершения всех операций? (динамический массив) #include &lt;iostream&gt; #include...

Как стать python программистом?
Привет!;) Появилось большое желание стать python программистом. А именно научиться делать ботов Telegram, Vk, Whatsapp и др. Также...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru