Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 23, 2017 01:23:46

Lork
Зарегистрирован: 2017-01-08
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

random.shuffle работает выборочно

Приветствую всех!
Решил сделать себе для учебных целей генератор случайных списков. Ввод размера списка, а так же пропорции кол-ва литер и цифирей привинчу потом. Сейчас возник вопрос: почему не генерируется список c1? Заранее благодарю.

P.S. Обработка списка arr - это просто мой контроль работы модуля random.shuffle.
=========================================================

 #Генератор случ. списков
import random
a='abcdefghijklmnopqrstuvwxyz'
b=[-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9]
c=random.sample(a,16)+random.sample(b,9)
print('c= ',c)
c1=random.shuffle(c)
print('c1= ',c1)
#-------------------------------------------------------
arr = [-2,-1,0,1,2,3,4,5,6,7,8,9,10,'x','y','z']
random.shuffle(arr)
print('arr=',arr)
================================
Вывод результата:
 c=  ['c', 'l', 'd', 'n', 't', 's', 'f', 'm', 'v', 'j', 'p', 'r', 'x', 'a', 'q', 'i', 0, 7, -3, -7, -9, -2, -5, 6, -8]
c1=  None
arr= ['y', 3, 4, 10, 1, 'x', 9, 0, 5, 2, -1, 6, 8, 7, 'z', -2]
>>>

Отредактировано Lork (Фев. 23, 2017 01:29:39)

Офлайн

#2 Фев. 23, 2017 02:48:06

wi34rd
Зарегистрирован: 2016-10-08
Сообщения: 89
Репутация: +  2  -
Профиль   Отправить e-mail  

random.shuffle работает выборочно

shuffle - процедурный метод, а не функциональный, т. е. он перемешивает c, а не возвращает перемешанный список.

Офлайн

#3 Фев. 23, 2017 03:00:20

Lork
Зарегистрирован: 2017-01-08
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

random.shuffle работает выборочно

wi34rd
shuffle - процедурный метод, а не функциональный, т. е. он перемешивает c, а не возвращает перемешанный список.
Спасибо, разобрался!

Офлайн

#4 Фев. 25, 2017 09:31:08

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

random.shuffle работает выборочно

wi34rd
shuffle - процедурный метод, а не функциональный, т. е. он перемешивает c, а не возвращает перемешанный список.

Вынужден не согласиться. Процедурных методов в python все же нет

Офлайн

#5 Фев. 25, 2017 17:05:18

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

random.shuffle работает выборочно

Что такое процедурный метод?



Офлайн

#6 Фев. 25, 2017 18:18:36

wi34rd
Зарегистрирован: 2016-10-08
Сообщения: 89
Репутация: +  2  -
Профиль   Отправить e-mail  

random.shuffle работает выборочно

FishHook
Что такое процедурный метод?
Метод, в котором нет инструкции return, или которая ничего не возвращает. Считайте я ввел новое определение

Офлайн

#7 Фев. 25, 2017 19:19:49

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

random.shuffle работает выборочно

В паскале и иже с ними были процедуры и функции. Это были разные понятия и их нужно по разному определять. В python нет процедуры, потому как функция в любом случае возвращает None даже если нет явного return.

Офлайн

#8 Фев. 26, 2017 01:22:07

wi34rd
Зарегистрирован: 2016-10-08
Сообщения: 89
Репутация: +  2  -
Профиль   Отправить e-mail  

random.shuffle работает выборочно

В Python'е все очень условно, метод - не метод, класс - не класс и т. д. В C тоже формально нет процедур, но те, что типа void некоторые называют процедурами, чтобы как-то обозначить их, так сказать отделить мух от котлет. Но раз это вызывает такую реакцию буду делать это про себя, а писать буду длинные определения…

Отредактировано wi34rd (Фев. 26, 2017 02:50:12)

Офлайн

#9 Фев. 26, 2017 09:53:40

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

random.shuffle работает выборочно

wi34rd
В Python'е все очень условно, метод - не метод, класс - не класс и т. д.
Поподробнее…

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version