Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 14, 2019 11:19:03

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Задачи из книги Hello World. Занимательное программирование (авторы У. Сэнд, К. Сэнд)

Rodegast
Да ладно? Второй и третий python не так сильно отличаются.
На втором питоне надо использовать xrange(), на третьем питоне его нет. И вот скажи, зачем человеку учить, что есть такая функция? Ради чего? Потом он будет вынужден учить разницу между функциями range() и xrange(). А как без этого?
Вот это и есть куча ненужной фигни.

Надеюсь, ты помнишь импорт из future. А ведь мог бы и забыть уже, потому что в третьем питоне про него и знать не нужно вовсе. Или можно вспомнить о декларации кодировки исходника в каждом файле Я-то это всё знаю и помню, вот только нафиг оно нужно мне сейчас? А чтобы узнать это всё, мне приходилось штудировать тонны материала на английском, а то вдруг что-нибудь знать не будешь и написать даже примитивную прогу не сможешь.



Отредактировано py.user.next (Окт. 14, 2019 11:23:00)

Офлайн

#2 Окт. 14, 2019 11:44:14

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2849
Репутация: +  186  -
Профиль   Отправить e-mail  

Задачи из книги Hello World. Занимательное программирование (авторы У. Сэнд, К. Сэнд)

> И вот скажи, зачем человеку учить, что есть такая функция? Ради чего?

Учить их в любом случае надо, проекты на втором python-е будут ещё долго существовать.

> Надеюсь, ты помнишь импорт из future.

Я этим никогда не пользовался.

> А чтобы узнать это всё, мне приходилось штудировать тонны материала на английском

Ну ты и чудак…



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Окт. 14, 2019 11:44:58

kompilikus
Зарегистрирован: 2019-10-12
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачи из книги Hello World. Занимательное программирование (авторы У. Сэнд, К. Сэнд)

А как адаптировать код с 2 на 3, не зная разницы? Какой по вашему мнению лучше конвертер использовать?

Офлайн

#4 Окт. 14, 2019 18:50:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Задачи из книги Hello World. Занимательное программирование (авторы У. Сэнд, К. Сэнд)

Rodegast
Учить их в любом случае надо, проекты на втором python-е будут ещё долго существовать.
Не надо. Новичку надо учить третий питон, потому что, когда он выучит язык, появится уже четвёртый питон. Нужно ли учить второй питон профессионалу? Тоже под вопросом. Все нюансы нафиг не нужны, так как всеми нюансами никто не пользуется. Даже при чтении и переработке кода (хотя нафига это надо вообще?) достаточно знать лишь основы второго питона.

kompilikus
А как адаптировать код с 2 на 3, не зная разницы?
Напишешь заново всё или отделегируешь это какому-нибудь старику. Пускай сидит пенсионер и переводит.

kompilikus
Какой по вашему мнению лучше конвертер использовать?
Автоматических конвертеров не найдёшь; всё равно придётся руками менять. Его пытались сделать, но получилось всё равно фуфло. Но, скорее всего, ты и не будешь ничего переводить. Либо будешь запускать на втором без перевода, либо будешь писать заново всё. Оно и лучше.



Отредактировано py.user.next (Окт. 14, 2019 18:52:25)

Офлайн

#5 Окт. 14, 2019 19:03:56

kompilikus
Зарегистрирован: 2019-10-12
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачи из книги Hello World. Занимательное программирование (авторы У. Сэнд, К. Сэнд)

Офлайн

#6 Окт. 14, 2019 20:25:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Задачи из книги Hello World. Занимательное программирование (авторы У. Сэнд, К. Сэнд)

kompilikus
А это не подойдёт?
Не подойдёт.



Офлайн

#7 Окт. 14, 2019 21:07:51

kompilikus
Зарегистрирован: 2019-10-12
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачи из книги Hello World. Занимательное программирование (авторы У. Сэнд, К. Сэнд)

А пример кода можете привести, с помощью которого можно убедиться, что не подойдёт?

Офлайн

#8 Окт. 14, 2019 21:11:00

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Задачи из книги Hello World. Занимательное программирование (авторы У. Сэнд, К. Сэнд)

kompilikus
Надо ли в PyScripter убрать галочку на Auto-complete with one entry?
По желанию, но думаю не повредит.

По поводу питона двушки. Я тоже думаю что это пустая трата времени для новичка. пишите на трешке, про конверторы забудьте. Зачем они вам если на трешке будете писать?



Отредактировано doza_and (Окт. 14, 2019 21:13:22)

Офлайн

#9 Окт. 14, 2019 21:24:14

kompilikus
Зарегистрирован: 2019-10-12
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачи из книги Hello World. Занимательное программирование (авторы У. Сэнд, К. Сэнд)

не повредит убрать галочку или галочка оставленная не повредит?

Может быть писать не буду. Так несколько дней почитаю, пока есть энтузиазм. Потом может быть надоест и решу посмотреть, что из себя представляет другой язык.

Офлайн

#10 Окт. 15, 2019 04:50:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Задачи из книги Hello World. Занимательное программирование (авторы У. Сэнд, К. Сэнд)

kompilikus
А пример кода можете привести, с помощью которого можно убедиться, что не подойдёт?
Не преобразованный
  
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
print range(10) + range(10),

Вывод
[guest@localhost 2to3]$ ./t.py 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[guest@localhost 2to3]$

Преобразованный
  
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
print(list(range(10)) + list(range(10)), end=' ')

Вывод
[guest@localhost 2to3]$ python3 ./out/t.py 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [guest@localhost 2to3]$

Строка интерпретатора не преобразовалась в
#!/usr/bin/env python3
Строка кодировки не удалилась и осталась
# -*- coding: utf-8 -*-

Почему строка кодировки нужна во втором питоне и не нужна в третьем? Потому что во втором питоне, если её не поставить, то по умолчанию там будет кодировка ascii. А в третьем питоне, если её не поставить, то по умолчанию там будет кодировка utf-8. Поэтому мы в третьем питоне и не ставим декларацию кодировки, так как в третий питон добавили utf-8 по умолчанию.

По идее, транслятор должен был стереть её, но не стёр и оставил мусор в исходнике.

Дальше ты приводил сайт по конвертированию. Маленький секрет тебе открою: лучше lib2to3 ничего нет для трансляции, поэтому любой сайт, транслирующий питон из 2-ой версии в 3-ью, базируется на этом модуле питона.

Вот ещё

На втором
  
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
for k in {1: 2, 3: 4}.keys():
    print '%s' % k,

На третьем
  
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
for k in list({1: 2, 3: 4}.keys()):
    print('%s' % k, end=' ')
И вывод тоже разный у них.
[guest@localhost 2to3]$ ./t.py 
1 3
[guest@localhost 2to3]$ python3 ./out/t.py
1 3 [guest@localhost 2to3]$
Но дело тут даже не в выводе, а в наглядности того, какая лажа получается после перевода в самом исходном коде. Если бы ты так изначально на третьем написал, как он перевёл, то можно было бы только пальцем у виска покрутить и выкинуть такое из любого проекта.



Отредактировано py.user.next (Окт. 15, 2019 04:53:44)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version