Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 25, 2016 10:35:28

Neofit
Зарегистрирован: 2016-11-25
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Вот, такие пироги.

Ув.эксперты, не поможете юной леди и ее весьма далекому от вопросов программирования отцу? Обе задачки (см att), как я понимаю, “не бином Ньютона”, наверное, в excell'e было бы сделать даже быстрее. Но надо на Питоне. Обещаю, что не “перепрём” с ребенком тупо, а разберемся в коде. С меня по системе “бекицер” консультация по вопросам строительства / ремонта алаверды )

Прикреплённый файлы:
attachment python.pdf (242,8 KБ)

Офлайн

#2 Ноя. 25, 2016 11:24:05

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Вот, такие пироги.

Первую задачу можно решить так:

 import random
values = [random.randint(-100, 100) for _ in range(10)] 
def sort_function(lst):
    lst_positiv = []
    lst_negativ = []
    lst_0 = []
    for x in lst:
        if x > 0:
            lst_positiv.append(x)
        elif x < 0:
            lst_negativ.append(x)
        else:
            lst_0.append(x)
    return sorted(lst_positiv) + sorted(lst_negativ) + lst_0, len(lst_positiv)
res = sort_function(values)
print('Список из случайных чисел =', values)
print('Отсортированный список =', res[0])
print('Количество положительных чисел =', res[1])

Офлайн

#3 Ноя. 25, 2016 11:24:29

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Вот, такие пироги.

Я так понимаю что вам нужно решение в примитивном виде?
Тогда получается что-то такое

 # -*- coding: utf-8 -*-
import random
result = []
# Количество членов массива 10
for count in range(10):
    # заполним массив result псевдослучайными значениями
    result.append(random.randint(-10, 10))
# Выведем результат
print(result)
# Произведем сортировку
sorted_result = sorted(result)
# Выведем отсортированный результат
print(sorted_result)
# Начальное значение положительных членов массива
total = 0
# сосчитаем количество положительных членов массива
for value in sorted_result:
    # если значение больше нуля
    if value > 0:
        total += 1
# Выведем количетсво положительных членов массива
print(total)

Результат для примера:
 [-7, 1, 6, 8, -2, 6, 1, -8, -3, 6]
[-8, -7, -3, -2, 1, 1, 6, 6, 6, 8]
6

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


Romissevd - камрад- там же для ребенка попросили. К тому же твой вариант через чур избыточен.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Отредактировано ZerG (Ноя. 25, 2016 11:25:40)

Офлайн

#4 Ноя. 25, 2016 11:42:55

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Вот, такие пироги.

Вторая задача

 import random
m = 100 # предельное число, из которого будет формироваться список случайных чисел и ряда Фибоначчи
values = [random.randint(0, m) for _ in range(10)] # формируем список из случайных чисел
def fibo(n):
    lst = [0, 1]
    for i in range(2, n + 1):
        lst.append(lst[i-1] + lst[i-2])
    return lst
lst_fibo = fibo(m)
lst_number_fibo_in_values = []
for x in values:
    if x in lst_fibo:
        lst_number_fibo_in_values.append(x)
print('Список из случайных чисел =', values)
print('Числа Фибоначчи, которые находятся в сформированном списке', lst_number_fibo_in_values)

Офлайн

#5 Ноя. 25, 2016 11:47:28

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Вот, такие пироги.

ZerG
Romissevd - камрад- там же для ребенка попросили. К тому же твой вариант через чур избыточен.
Согласен полностью с Вами по поводу растягивания “волынки”, исходил из того, что нужно для школьника, поэтому и писал на примитивном уровне.

Но, Ваше ZerG решение не совсем верно, так как в условии сказано, что нужно вернуть отсортированный массив, в котором сперва положительные, потом отрицательные, а затем нули, хотя отрицательные и нули в конце (а у Вас это так), но в примере как раз 0 в конце, метод sorted() нули впихнет в середину…

Отредактировано Romissevd (Ноя. 25, 2016 11:52:53)

Офлайн

#6 Ноя. 25, 2016 11:54:55

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

Вот, такие пироги.

Romissevd
сперва положительные, потом отрицательные, а затем нули, метод sorted() нули впихнет в середину
 a = [3, 5, 0, -1, -5, 78, 0, -5]
print sorted(a, key=lambda x: x or None, reverse=True)



Офлайн

#7 Ноя. 25, 2016 11:58:40

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Вот, такие пироги.

FishHook
Ну да есть же метод реверса.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#8 Ноя. 25, 2016 12:07:37

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Вот, такие пироги.

FishHook, но нули-то в середине списка все равно, а исходя из приведенного примера нули должны быть в конце списка….

Офлайн

#9 Ноя. 25, 2016 12:16:43

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

Вот, такие пироги.

Romissevd
С хреналь?




Отредактировано FishHook (Ноя. 25, 2016 12:16:54)

Офлайн

#10 Ноя. 25, 2016 12:19:38

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Вот, такие пироги.

FishHook
С того что надо любить sorted() а Romissevd его не любит.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version