
alex
17.09.2018
11:16:04

Aragaer
17.09.2018
11:17:13
ну так он же говорит
внимание, вопрос на засыпку. Чем r+ отличается от rb

alex
17.09.2018
11:17:36
что именно

Google

Egor
17.09.2018
11:18:30
Люди разучились читать -_- эх

Евгений
17.09.2018
11:18:59
что именно
"Чтения файла объекты должны возвращать байтов объекты."
(c) Йода

alex
17.09.2018
11:19:54

Aragaer
17.09.2018
11:20:55
какую?

alex
17.09.2018
11:21:08
https://pastebin.com/Dmz7qyaE
выше ж указал

Евгений
17.09.2018
11:21:21

Aragaer
17.09.2018
11:21:42
да-да
ошибка "файл надо двоичный" она хуже, чем "файл ок, содержимое говно"

Дмитрий
17.09.2018
11:22:26
?

Aragaer
17.09.2018
11:22:45
а может даже и содержимое нормально, просто по контексту нельзя так итерироваться

alex
17.09.2018
11:23:51
подскажите студенту то в чем ошибка

Google

Tigran
17.09.2018
11:32:40
А теперь с rb покажи

alex
17.09.2018
11:33:06
или ошибку
и да, файл размеров 4 гига
поэтому и пользую lxml

Tigran
17.09.2018
11:35:23
?

alex
17.09.2018
11:35:25
c iterparse

Aragaer
17.09.2018
11:38:45
что-то мне подсказывает, что нельзя вносить модификации в то, что у тебя в итераторе

Маришка
17.09.2018
11:39:23

Aragaer
17.09.2018
11:41:11
а, ну да, странный тег 'https://jira.xxx.ru'

Tigran
17.09.2018
11:41:31
я не понимаю, почему просралось сообщение из эксепшна

Маришка
17.09.2018
11:45:44

Василий
17.09.2018
11:46:46

alex
17.09.2018
11:46:48

Василий
17.09.2018
11:46:58
но да. на само дерево это не повлияет

Маришка
17.09.2018
11:47:13

alex
17.09.2018
11:47:39
то есть for не рабочий ?

Василий
17.09.2018
11:47:55

Маришка
17.09.2018
11:48:03
Он работает, просто делает ничего логичного

Google

Маришка
17.09.2018
11:48:10

alex
17.09.2018
11:48:14

Маришка
17.09.2018
11:48:38

Iliya
17.09.2018
11:48:47
день добрый всем
я тут в рекурсии у себя запутался
Хочу функицю написать, которая не даст ввести строку более 15 симыволов и только латиницу
как ограничить и проверить понял, а как повторно запросить ввод при ошибке что-то не понял...
По сути все работает как надо, но если с начала ввести что-то не верно, а потом верно то на выходе из функции будет и то и то
вот чего я навыдумывал
import re
def check_input_string():
input_str = input("Please provide some info: ")
if not re.match("^[a-z]*$", input_str):
print ("Error! Only letters a-z allowed!\n Try again.")
check_input_string()
elif len(input_str) > 15:
print ("Error! Only 15 characters allowed!\n Try again.")
check_input_string()
print(input_str)

alex
17.09.2018
11:49:07

Василий
17.09.2018
11:49:17

Маришка
17.09.2018
11:50:22

Iliya
17.09.2018
11:51:07

Маришка
17.09.2018
11:51:11

Iliya
17.09.2018
11:52:10
isalpha() забыл по эту функцию, спасибо
сейчас попробую

Василий
17.09.2018
11:52:13

Маришка
17.09.2018
11:53:18
Но да это уже зажирно их подключать
Только если там не какой нибудь сложный паттерн

Василий
17.09.2018
11:56:03

Aragaer
17.09.2018
11:57:02
во-первых да
во-вторых завтра и поменяешь регулярку на что-то более эффективное
кстати, регулярка без возврата, да еще и скомпилированная заранее, это вполне шустрая штука

Alexey
17.09.2018
11:58:03
Только поосторожнее с isalpha():
Python 3.7.0 (default, Jun 29 2018, 20:13:13)
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 'привет'.isalpha()
True

Google

?? Eugene
17.09.2018
11:58:56
ну он не только английский алфавит смотрит

Aragaer
17.09.2018
11:59:30
алфавит же

Маришка
17.09.2018
11:59:36

Valery
17.09.2018
11:59:47

Маришка
17.09.2018
12:00:28

Admin
ERROR: S client not available

Маришка
17.09.2018
12:00:31
Даладнаблядь
Так уверенно ещё пишешь

Valery
17.09.2018
12:00:59
а, я про isaplha подумал

Iliya
17.09.2018
12:01:00
я все еще запутан в своей же рукурсии :)
def check_input_string():
input_str = input("Please provide some info: ")
if not input_str.isalpha() and len(input_str) <= 15:
print ("Error! Only letters a-z allowed and 15 symbols!\n Try again.")
check_input_string()
print(input_str)
как мне правильно запросить повторный ввод при ошибке, но чтобы потом при вверно вооде вывело только правильный вариант, а то получается вот такое

Aragaer
17.09.2018
12:01:12
all(ord("a") <= ord(ch) <= ord("z") for ch in input_str)
если хочецца "быстро"
но регулярка это сделает не на питоне, поэтому быстрее
мм обычно

Ярослав
17.09.2018
12:01:43
чет свсем расслабились тут, Эйчаров не обсыкают
не торт

Firdavs
17.09.2018
12:01:54
Какую книгу посоветуете по облачным вычислениям?

Aragaer
17.09.2018
12:02:18
обычно делают do-while, но птон этого не умеет, поэтому так
while True:
input_str = input()
if check_input_str():
break

Iliya
17.09.2018
12:02:30
блин isalpha() пропускает кирилицу

Google

?
17.09.2018
12:02:48

Firdavs
17.09.2018
12:03:13

Aragaer
17.09.2018
12:03:50
тогда учебник английского

Valery
17.09.2018
12:03:56

Aragaer
17.09.2018
12:04:21
ловеркейз

Valery
17.09.2018
12:04:25
не помню как это точно пишется

?? Eugene
17.09.2018
12:04:39

?
17.09.2018
12:04:51
На русском
https://habr.com/company/it-grad/blog/283400/

Vladislav
17.09.2018
12:05:05

Iliya
17.09.2018
12:05:12

Valery
17.09.2018
12:07:42

Iliya
17.09.2018
12:07:48

Alexey
17.09.2018
12:08:47
Флаг '\r' позволяет переписать текущую строку
А, ты не об этом
Заверни print в else

Iliya
17.09.2018
12:12:11
Заверни print в else
Я вернулся к старому варианты кода
import re
def check_input_string():
input_str = input("Please provide some info: ")
if not re.match("^[a-z]*$", input_str):
print ("Error! Only letters a-z allowed!\n Try again.")
check_input_string()
elif len(input_str) > 15:
print ("Error! Only 15 characters allowed!\n Try again.")
check_input_string()
print(input_str)
check_input_string()
И он так отрабатывает
Думал присваивать input_str = None в if но тогда возвращает верный ввод, а потом None на все неверные попытки

Alexey
17.09.2018
12:13:37
У тебя вот этот принт отрабатывает вне зависимости от успеха проверки:
def check_input_string():
input_str = input("Please provide some info: ")
if not re.match("^[a-z]*$", input_str):
print ("Error! Only letters a-z allowed!\n Try again.")
check_input_string()
elif len(input_str) > 15:
print ("Error! Only 15 characters allowed!\n Try again.")
check_input_string()
=>print(input_str)