Вот есть такой код:
a=['кот','окно','выбросить']
for x in a:
print x,len(x)
выдает следующий результат:
кот 6
окно 8
выбросить 18
Дистр Mandriva 2007 PP. Версия Python 2.4.3.
В 2006 всё нормально.
И ещё просто хочу узнать мнение стоит ли переходить с Java на Python почему спрашиваю, просто Python подкупает
простотой своего синтаксиса,но не нравится мне в нем ООП.Скажите просто в чем его плюсы кроме вышеуказанного,а то в последнее время много говорят,что крутой язык.Просто инет очень ограниченный и немогу сильно искать разную информацию.Благодарю заранее за хорошие содержательные ответы.
Python,неправильно считает символы в строке
Модератор: Модераторы разделов
-
a_sergeevich
- Сообщения: 95
- ОС: Mandriva 2007 PowerPack
-
mops
- Сообщения: 172
- ОС: Ubuntu Feisty
Re: Python,неправильно считает символы в строке
А вывод интерпретатора вида
вас не смущает? 
По поводу языка - он просто красивый...
Код: Выделить всё
sys:1: DeprecationWarning: Non-ASCII character '\xd0' in file on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsПо поводу языка - он просто красивый...
-
Skull
- Модератор
- Сообщения: 2089
- ОС: ALT Linux
Re: Python,неправильно считает символы в строке
Потому как в 2006 была локаль KOI8-R по умолчанию, а в 2007 - UTF-8 (где все русские буквы кодируются двумя байтами).a_sergeevich писал(а): ↑02.02.2007 17:28Дистр Mandriva 2007 PP. Версия Python 2.4.3.
В 2006 всё нормально.
Поэтому пишите так:
Код: Выделить всё
>>> k=u"кот"
>>> k
u'\u043a\u043e\u0442'
>>> len(k)
3Skull
-
a_sergeevich
- Сообщения: 95
- ОС: Mandriva 2007 PowerPack
Re: Python,неправильно считает символы в строке
Skull писал(а): ↑02.02.2007 17:47Потому как в 2006 была локаль KOI8-R по умолчанию, а в 2007 - UTF-8 (где все русские буквы кодируются двумя байтами).a_sergeevich писал(а): ↑02.02.2007 17:28
Дистр Mandriva 2007 PP. Версия Python 2.4.3.
В 2006 всё нормально.
Поэтому пишите так:Код: Выделить всё
>>> k=u"кот" >>> k u'\u043a\u043e\u0442' >>> len(k) 3
Спасибо.
Всё понял.
В принципе догадывался, но решил на всякий случай спросить, а то мало-ли.
Замахала если честно эта свистопляска с кодировками.
-
Liksys
- Сообщения: 2910
Re: Python,неправильно считает символы в строке
На всякий случай, буава u перед строкой означает, что это строка unicode. Еще для пущего эффекта можно указывать вторым комментарием после ши-бэнга (#!...) коммент # -*- conding: utf-8 -*-, она установит кодировку в юникод.
Про Питон. Это очень простой, краткий и мощный язык. У него есть конечно некоторые особенности, но ели их понять, все становится просто. ООП так же довольно простое. Имхо, язык - самое то для кросплатформенных программ. Вот непример пишу я графическую программу с использованием Qt4 в Линуксе, копирую в венду, все работает
Про Питон. Это очень простой, краткий и мощный язык. У него есть конечно некоторые особенности, но ели их понять, все становится просто. ООП так же довольно простое. Имхо, язык - самое то для кросплатформенных программ. Вот непример пишу я графическую программу с использованием Qt4 в Линуксе, копирую в венду, все работает
-
Eaglevil
- Сообщения: 60
- ОС: Arch Linux
Re: Python,неправильно считает символы в строке
ИМХО, почти тоже самое можно сказать о Java.(Liksys) писал(а):Это очень простой, краткий и мощный язык. У него есть конечно некоторые особенности, но ели их понять, все становится просто. ООП так же довольно простое. Имхо, язык - самое то для кросплатформенных программ.
Здесь могла быть ваша реклама
-
a_sergeevich
- Сообщения: 95
- ОС: Mandriva 2007 PowerPack
Re: Python,неправильно считает символы в строке
Вот в этом то вся и проблема.
В Java мне нравится как ООП организовано потомучто он 100% ООЯ,и ещё хоть опыта
в программировании у меня малова то,но с проблемой кодировок в Java не сталкивался,но есть у Java и минусы это например,работа с файлами лупануться можно ( в смысле чтение,запись)по сравнению с питоном где чтение запись в двух строчках кода организовывается.В Java хорошая графика для GUI довольно простая в освоении и симпотная не сравнить с Tkinter . Вообще взять ОО модель и библиотеки GUI от Java ,и все остальное от питона да все это соеденить в один язык и сделать его компилируемым,и оставить возможность работы и в интерпретаторе то по-моему этот язык порвал бы по своей красоте и простоте и мощи все имеющиеся .
Только прошу все вышесказанное считать чисто мнением не более.
[
Кстати ты мог бы подсказать где можно глянуть описание на русском таких штук как PyQt и PyGTK, а то честно Tkinter вымораживает просто своим видом.Английский к сожалению не знаю на таком уровне,чтобы читать литературу.
В Java мне нравится как ООП организовано потомучто он 100% ООЯ,и ещё хоть опыта
в программировании у меня малова то,но с проблемой кодировок в Java не сталкивался,но есть у Java и минусы это например,работа с файлами лупануться можно ( в смысле чтение,запись)по сравнению с питоном где чтение запись в двух строчках кода организовывается.В Java хорошая графика для GUI довольно простая в освоении и симпотная не сравнить с Tkinter . Вообще взять ОО модель и библиотеки GUI от Java ,и все остальное от питона да все это соеденить в один язык и сделать его компилируемым,и оставить возможность работы и в интерпретаторе то по-моему этот язык порвал бы по своей красоте и простоте и мощи все имеющиеся .
Только прошу все вышесказанное считать чисто мнением не более.
[
Liksys писал(а): ↑02.02.2007 23:12На всякий случай, буава u перед строкой означает, что это строка unicode. Еще для пущего эффекта можно указывать вторым комментарием после ши-бэнга (#!...) коммент # -*- conding: utf-8 -*-, она установит кодировку в юникод.
Про Питон. Это очень простой, краткий и мощный язык. У него есть конечно некоторые особенности, но ели их понять, все становится просто. ООП так же довольно простое. Имхо, язык - самое то для кросплатформенных программ. Вот непример пишу я графическую программу с использованием Qt4 в Линуксе, копирую в венду, все работает
Кстати ты мог бы подсказать где можно глянуть описание на русском таких штук как PyQt и PyGTK, а то честно Tkinter вымораживает просто своим видом.Английский к сожалению не знаю на таком уровне,чтобы читать литературу.
-
Liksys
- Сообщения: 2910
Re: Python,неправильно считает символы в строке
Я как раз программированием на Python+PyQt(3/4) в последнее время и занимаюсь, кроме С.
PyQt ~ Qt, Виджеты одни и те же, методы работы - тоже. Берешь ту же "Qt3: программирование GUI на С++", читаешь, а потом переносишь на Питон, единственное, что не надо заморачиваться с типами и не забывать приписывать в классах self. Вот пример на PyQt3:
И на PyQt4:
Остальное по аналогии. Если будут с Python/PyQt проблемы - пиши, помогу.
PyQt ~ Qt, Виджеты одни и те же, методы работы - тоже. Берешь ту же "Qt3: программирование GUI на С++", читаешь, а потом переносишь на Питон, единственное, что не надо заморачиваться с типами и не забывать приписывать в классах self. Вот пример на PyQt3:
Код: Выделить всё
#!/usr/bin/python
from qt import *
import sys
app = QApplication(sys.argv)
button = QPushButton("Exit", None)
QObject.connect(button, SIGNAL("clicked()"), sys.exit)
button.show()
app.setMainWidget(button)
app.exec_loop()И на PyQt4:
Код: Выделить всё
#!/usr/bin/python
from PyQt4 import Qt
import sys
app = Qt.QApplication(sys.argv)
button = Qt.QPushButton("Exit", None)
Qt.QObject.connect(button, Qt.SIGNAL("clicked()"), sys.exit)
button.show()
app.exec_()Остальное по аналогии. Если будут с Python/PyQt проблемы - пиши, помогу.
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Python,неправильно считает символы в строке
В Java мне нравится как ООП организовано потому что он 100% ООЯ
с каких это пор язык с наличием примитивных типов считается 100% ОО ?
слава роботам!