Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Уроки по Python, обсуждение  (Прочитано 29413 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kacmem

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
    • Интеллект Дом
Re: Уроки по Python, обсуждение
« Ответ #90 : 15 Января 2014, 05:38:57 »
Grigory Smirnov,
спасибо за уроки  :coolsmiley:
Linux Mint Maya 64b, CPU Xeon E5540 4x2.5 GHz, MB Gigabyte Killer G1.Guerrilla, RAM 20 Gb, Radeon HD6990 4 Gb, SSD 2x120Gb, HDD 6x3Tb + 3x2Tb

Оффлайн wiom

  • Любитель
  • *
  • Сообщений: 82
    • Просмотр профиля
    • wiom.ru
Re: Уроки по Python, обсуждение
« Ответ #91 : 25 Января 2014, 12:33:31 »
не знаю пилал ли кто то об этом в этой ветке или нет, но читать 7 страниц темы нет времени, к сожалению. у меня такое предложение к автору, было бы очень познавательно подробнее познакомиться с массивами, к примеру, как объвить и работать с двумерными массивами, при этом как к примеру создать просто двухмерный массив, и как создать незаполненый двухмерный массив, как создать массив массивов (безмерный массив), про значения которые мы можем присвоить массиву. я опять же таки не понимаю вот если мы объявили массив
Цитировать
mass=[]
и как теперь узнать с каким типом данных этот массив работает? опять же интересно как найти максимальное значение в массиве и как минимально, как вообще найти какое либо значение в массиве, как получить длинну массива? а за уроки да, спасибо большое, именно с них я и стартую) кстати, решил как обычно при изучении языка программирования, написать калькулятор) я долго сидел и смеялся когда код уложился в 2 строчки))
Цитировать
a= input('Введите пример * - Умножение, + - Сложение, - - Вычетание, / - Деление,\n** - Возведение в степень, % - Остаток от деления, // - Целочисленное деление \n')
print a
правда с делением как то странно работает, к примеру 1/2 получается 0, а 1%2, получается 1, если бы кто нибудь рассказал как так получается был бы благодарен)

Пользователь решил продолжить мысль 25 Января 2014, 12:43:54:
видел кто то писал про input и raw_inpat, я наверное возьму смелость объяснить) если мы пишем так
Цитировать
a= inpat()
print a
то нужно вводить данные типо integer, а если
Цитировать
a= raw_input()
print a
то нужно вводить данные типо string, но не нужно автору добавлять это в урок) а то мы перестанем своей головой думать))
« Последнее редактирование: 25 Января 2014, 12:43:54 от wiom »
программисты - это люди, которые решают никому неизвестные проблемы, никому непонятными способами.

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #92 : 25 Января 2014, 13:23:58 »
В питоне нет массивов
Код: (Python) [Выделить]
a = [] #это список. Двумерных списков не бывает, но можно создать список списков:
Код: (Python) [Выделить]
a = [[], []] #Список с двумя списками внутри, можно сделать их столько, сколько надоЗамечу, что библиотека numpy дает возможность использовать, видимо, более привычный вам тип данных - вполне себе массив произвольной размерности. Но это огромная тема, библиотека очень мощная, создана для научных вычисление и т.п. В целом, однако, работа с массивами из нее похожа на работу со списками, но есть и существенные отличия. Предлагаю ознакомиться с этим самостоятельно.
Код: (Python) [Выделить]
max(a) # Максимум
min(a) # Mинимум
len(a) # Длина списка
a.index('A') # Вернет номер первого элемента, равного 'A'

Списки могут содержать любые данные внутри себя, причем в том числе и разного типа внутри одного списка.

1/2 во втором питоне - деление целый чисел без остатка (целочисленное деление), дает 0
1.0/2 - деление чисел с плавающей запятой, с остатком - дает 0.5

А про input Вы неточно написали.
Просто input() лучше не использовать, поскольку питон выполняет то, что вводится, как питоновский код, так что можно получить уязвимость. А raw_input() преобразует все в строку.
« Последнее редактирование: 25 Января 2014, 13:34:18 от Phlya »
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн wiom

  • Любитель
  • *
  • Сообщений: 82
    • Просмотр профиля
    • wiom.ru
Re: Уроки по Python, обсуждение
« Ответ #93 : 25 Января 2014, 15:53:29 »
ого! спасбо большое, у меня только один вопрос остался) а как работать со списком списков? имено как как обращаться к поределенному списку в списке?)

Пользователь решил продолжить мысль 25 Января 2014, 15:54:02:
или к определенному элементу в списке списков...

Пользователь решил продолжить мысль 25 Января 2014, 16:10:10:
просто не понятно, к примеру у нас есть список логинов и паролей, мы его можем оформить так
Цитировать
login= ['Admin', 'User', 'Vova', 'Vasya']
pass= ['123', '321', 'q1werty', '1qazxsw2']
#и проверять вот так
l= raw_input('Login')
p= paw_input('pass')
if l in login:
    position = login.index(l)
    if p == pass[position]:
        print 'Hi there, %s. Access granted.' % login
    else:
      print 'Password incorrect. Access denied.'
else:
   print "Sorry...I don't recognize you. Access denied."
а как быть если лоигны и пассы хранятся вот так
Цитировать
login=[ [ 'Admin', 'User', 'Vova', 'Vasya' ],[ '123', '321', 'q1werty', '1qazxsw2' ] ]
« Последнее редактирование: 25 Января 2014, 16:10:10 от wiom »
программисты - это люди, которые решают никому неизвестные проблемы, никому непонятными способами.

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #94 : 25 Января 2014, 16:21:16 »
Ну, как обращаться ровно так же.

Код: (Python) [Выделить]
login=[ [ 'Admin', 'User', 'Vova', 'Vasya' ],[ '123', '321', 'q1werty', '1qazxsw2' ] ]
l= raw_input('Login')
p= paw_input('pass')
if l in login[0]:
    position = login[0].index(l)
    if p == login[1][position]:
        print 'Hi there, %s. Access granted.' % login
    else:
      print 'Password incorrect. Access denied.'
else:
   print "Sorry...I don't recognize you. Access denied."

Я код не запускал, правда, но идея в любом случае должна быть понятна.
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #95 : 25 Января 2014, 16:54:13 »
В питоне нет массивов

В питоне есть массивы.

array — эффективные массивы чисел
Этот модуль определяет новый тип объектов array,
эффективно реализующий массивы значений основных типов:
символов, целых и вещественных чисел.
Массивы ведут себя аналогично спискам с одним исключением:
все сохраняемые в массиве объекты должны быть одного
определенного типа.


>>> from array import array
>>> a = array('i',[1,2,-3,4,5])
>>> print a[2]
-3
>>>



Оффлайн wiom

  • Любитель
  • *
  • Сообщений: 82
    • Просмотр профиля
    • wiom.ru
Re: Уроки по Python, обсуждение
« Ответ #96 : 25 Января 2014, 18:54:42 »
Спасибо вам большое)
программисты - это люди, которые решают никому неизвестные проблемы, никому непонятными способами.

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Уроки по Python, обсуждение
« Ответ #97 : 25 Января 2014, 19:47:48 »
kacmem, спасибо  :)
Phlya, сразу видно, кто настоящий знаток в питоне.
Señor_Gaga, ну во-первых, массивы импортируются => это модуль => следовательно в самом питоне не массивов. И все равно даже здесь, в этом модуле, у них не такая функциональность как в более привычных языках программирования.



Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #98 : 25 Января 2014, 20:50:21 »
В питоне нет многого что есть в других языках, и привычно нам. Но есть много своего - очень спецефического.
Grigory Smirnov, продолжение уроков не планируете?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #99 : 25 Января 2014, 22:18:46 »
Grigory Smirnov,
следовательно в самом питоне не массивов.

array модуль стандартный. Для вас нет и нет, а для меня есть.
Следовательно - есть.
Вы хотя бы программу в 1000 строк на питоне написали?

Разницу между списками и массивами понимаете?
Уверен, что понимаете.

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #100 : 25 Января 2014, 22:40:09 »
Señor_Gaga,
Да, правда, есть еще array, но никогда им не пользовался... В общем, да, в чистом питоне массивов нет, но есть способы их получить, в том числе и из стандартной библиотеки.
А array чем лучше списка, быстрее и/или меньше памяти требует?

Grigory Smirnov,
Ну, уж прямо знаток, с некоторыми аспектами вообще на практике не знаком, с декораторами, например.
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #101 : 25 Января 2014, 23:19:30 »
Señor_Gaga,
А array чем лучше списка, быстрее и/или меньше памяти требует?

Да, и быстрее списка, и меньше памяти требует.
Список хотя бы самый простой односвязный требует
две ячейки памяти - поле_связи:поле_значения;
Массив же с одним типом (int, float и тд) можно
реализовать просто куском памяти.
Кортежи нечто среднее, ближе к массивам.
Если значения в массиве не меняются, то лучше
использовать кортеж.

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #102 : 25 Января 2014, 23:24:06 »
Señor_Gaga,
спасибо, буду знать. Может, и массивы пригодятся. Хотя я тогда чаще numpy использую...
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #103 : 26 Января 2014, 00:07:34 »
Вот моя библия от создателя pytyon:
Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач
Язык программирования Python

Не лезет во вложения, но в инете без труда
найдете эту книгу на русском языке.

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #104 : 26 Января 2014, 00:20:29 »
Да зачем на русском... Спасибо!
Ubuntu 14.04 (Unity), MSI GE40

 

Страница сгенерирована за 0.019 секунд. Запросов: 21.