Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/208: Рейтинг темы: голосов - 208, средняя оценка - 4.75
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288

Ищу доброго самаритянина по питону

16.01.2019, 16:27. Показов 49528. Ответов 508
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всех приветствую, немного о себе, 27 лет, женат, работаю системным админом в крупной компании. Всегда хотел программировать, но по стечению обстоятельств не сложилось, то работа не позволяла, не было времени, то бытовуха итд. Но вот решил что во что бы то не стало я овладею данной профессией. Начал свой путь программирования с питона. Сейчас читаю книги, прохожу на сайтах различные обучающие уроки итд, на ютюбе нашел не плохой канал где разжевывают все хорошо и вроде потихоньку получается писать (можно было бы идти на курсы, но не позволяет работа, питон питоном, а семью кормить надо, вроде и на работе время есть изучать, но вот уходить на курсы с работы итд, это не варик). Буквально вчера закончил разбираться и написал уже самостоятельно игру камень, ножницы, бумага, где играешь против компа. Ищу человека который просто направлял бы меня в нужное русло, подкидывал материал для изучения, который потом мне пригодится итп, который помог бы в трудностях. Просто учить все подряд без какого либо плана дает итог каши в голове. Если найдется тут такой человек, буду искренне благодарен ему!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.01.2019, 16:27
Ответы с готовыми решениями:

В зависимости от ведённого времени получите сообщение с пожеланием доброго утра, доброго дня, доброго вечера, спокойный
Плииз! Помогите с учёбой! В общем суть задания: В зависимости от ведённого времени (от 0 до 24) получите сообщение с пожеланием доброго...

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

Ищу доброго человечка, который поможет
Здравствуйте. Помогите пожалуйста сверстать небольшую страницу. Html, Css, Font Awesome

508
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
07.02.2019, 06:15  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Viktorrus Посмотреть сообщение
Что то я много написал, не знаю понятно ли.
В общих чертах) я понял что Х это одна и та же переменная, о по мере выполнения программы ее значение переписывается
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
07.02.2019, 06:49
Lucky64, я слежу за вашим прогрессом =)

В дополнение к вышесказанному, возможно будет полезным пройти несколько курсов на Степике

https://stepik.org/course/7215 - очень интересный, с нуля

https://stepik.org/course/67 - сложный, для тех, кто прошел азы

Курсы реально пройти за 2 месяца.


Также, вдогонку, без JavaScript сейчас тоже никуда
https://stepik.org/course/2223 - JavaScript для начинающих


И, конечно:

https://stepik.org/course/551 - введение в базы данных

=======================
Это тот минимум, без которого вообще никак.
"Маст ХЭВ"

=)
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
07.02.2019, 08:07  [ТС]
IRIP, благодарю!! Добью лутца и сразу возьмусь за курсы, просто надо закончить начатое
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
07.02.2019, 16:00
Цитата Сообщение от Lucky64 Посмотреть сообщение
я понял что Х это одна и та же переменная, о по мере выполнения программы ее значение переписывается
Не совсем так. Вернемся к примеру.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
X = 'Spam'
 
 
def func():
    X = 'NI!'
    def nested():
        global X
        X = 'Spkopam'
    nested()
    
    
func()
print(X)
X = 'Spam' Здесь присваивается значение на верхнем уровне модуля. При этом создается переменная X, которая помещается в пространство имен модуля, и в нее помещается ссылка на объект 'Spam'.

X = 'NI!' Здесь присваивается значение на уровне функции func(). При этом создается новая, уже локальная переменная X, которая помещается в пространство имен функции func(). Это уже другая переменная, но с именем таким же, как и переменная на верхнем уровне модуля X, и в нее помещается ссылка уже на другой объект 'NI'.

А вот что происходит внутри функции nested(). Инструкция 'global X' переменную X из глобальной области модуля записывает в список пространства имен функции nested(). Затем, когда используется инструкция присваивания X = 'Spkopam' , то питон видит в пространстве имен функции переменную X и поэтому не создает новую локальную переменную для функции nested() , а меняет в глобальной переменной X ссылку на объект 'Spkopam'.
В результате в локальной области функции nested() нет переменной X, но она есть в пространстве имен этой функции.
И если мы внутри функции nested() обратимся к переменной X что бы прочитать ее значение, то получим

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
X = 'Spam'
 
 
def func():
    X = 'NI!'
    def nested():
        global X
        X = 'Spkopam'
        print(X)
    nested()
    
    
func()
print(X)
Выводит:

Spkopam
Spkopam

И тут возникает коллизия с правилом LEGB

Ведь в соответствии с этим правилом, сначала берется имя, если оно существует, из локальной области. Но в локальной области функции nested() у нас нет переменной X, тогда должно быть взято имя с объемлющей области, то есть из функции func() , а именно значение 'NI!'.
Но берется значение из пространства имен функции nested(), а именно 'Spkopam'.
Но тогда L в правиле должна быть не локальная область, а пространство имен функции.
Возможен другой вариант, что пространство имен и локальная область , это одно и то же. Но тогда получается не совсем логичное пересечение локальных областей функции и модуля, да и отсуствие необходимости введения понятия пространства имен. Однако оно вводится, вот что пишет М.Лутц:

"Разрешение имен: правило LEGB
Если предыдущий раздел показался вам запутанным, спешу успокоить – в действительности все сводится к трем простым правилам. Для инструкции def:
• Поиск имен ведется самое большее в четырех областях видимости: локальной, затем в объемлющей функции (если таковая имеется), затем в глобальной и, наконец, во встроенной.
• По умолчанию операция присваивания создает локальные имена.
• Объявления global и nonlocal отображают имена на область видимости вмещающего модуля и функции соответственно. Другими словами, все имена, которым присваиваются значения внутри инструкции def (или внутри выражения lambda, с которым мы познакомимся позже), по умолчанию являются локальными; функции могут использовать имена в лексически объемлющих функциях и в глобальной области видимости, но чтобы иметь возможность изменять их, они должны быть объявлены нелокальными и глобальными.
Схема разрешения имен в языке Python иногда называется правилом LEGB, название которого состоит из первых букв названий областей видимости:
• Когда внутри функции выполняется обращение к неизвестному имени, интерпретатор пытается отыскать его в четырех областях видимости – в локальной (local, L), затем в локальной области любой объемлющей инструкции def (enclosing, E) или в выражении lambda, затем в глобальной (global, G) и, наконец, во встроенной (built-in, B). Поиск завершается, как только будет найдено первое подходящее имя. Если требуемое имя не будет найдено, интерпретатор выведет сообщение об ошибке. Как уже говорилось в главе 6, прежде чем имя можно будет использовать, ему должно быть присвоено значение.
• Когда внутри функции выполняется операция присваивания (а не обращение к имени внутри выражения), интерпретатор всегда создает или изменяет имя в локальной области видимости, если в этой функции оно не было объявлено глобальным или нелокальным.
• Когда выполняется присваивание имени за пределами функции (то есть на уровне модуля или в интерактивной оболочке), локальная область видимости совпадает с глобальной – с пространством имен модуля. "

Как видите понятие пространства имен присутствует. Поэтому я все таки склоняюсь к тому, что под L в правиле нужно подразумевать пространство имен для данного места в коде, в данном примере для функции.
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
08.02.2019, 04:25  [ТС]
Цитата Сообщение от Viktorrus Посмотреть сообщение
Как видите понятие пространства имен присутствует. Поэтому я все таки склоняюсь к тому, что под L в правиле нужно подразумевать пространство имен для данного места в коде, в данном примере для функции.
Вроде уловил суть...

Добавлено через 3 минуты
Viktorrus, Застрял в конце 18 главы, вчера весь вечер парился, и сегодня все утро(( в общем не могу разобраться в примере, а точнее понять все его функции...
Ниже приведу код с моими комментариями, буду рад если вы перекомментируете его построчно, чтоб я окончательно понял что и как работает, голова уже не варит вообще...
Пример
Python
1
2
3
4
5
6
7
8
9
10
11
def minmax(test, *args): #Создаем кортеж из test
    res = args[0]   #присваиваем переменной res нулевую позицию в кортеже test (тем самым определяем минимум
    for arg in args[1:]:#Создаем новую переменную и передаем ей значение из кортежа с первой позиции и до конца(тем самым определяем максимум
        if test(arg, res):#Если в кортеже имеются обе переменные то...тут я не совсем понял, либо совсем не понял
            res = arg#По выполнению условий обе переменные равны
    return res#Передаем результат в minmax
def lessthan(x, y): return x > y           #Тут я не совсем понял, Х и У это максимальное и минимальное значение?
def grtrthan(x, y): return x > y
 
print(minmax(lessthan, 4, 2, 1, 5, 6, 3))  #Тут задается тот самый кортеж, над которым мы производим операции в первой функции, а затем применяем вторую
print(minmax(grtrthan, 4, 2, 1, 5, 6, 3))  #и третью??
0
151 / 86 / 35
Регистрация: 05.08.2017
Сообщений: 257
08.02.2019, 09:01
Lucky64, у тебя опечатка на 8 строке в функции grtrthan, там знак сравнения другой должен быть, если функция возвращает сравнение 2 элементов, то будет возвращено логическое значение, т.е. True или False. Конструкция *args позволяет передавать в функцию неограниченное кол-во неименованных аргументов и в функции питон их преобразовывает в кортеж
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def minmax(test, *args):
    """
    Функция minmax применяет входную функцию test ко всем переданным ей
    аргументам из args и на её основе сравнивает значения
    test - функция для сравнения, возвращающая bool значение
    *args - кортеж неименованных аргументов
    """
    res = args[0] #инициализируем переменную res первым агрументом
    for arg in args[1:]: #начинаем итерацию со второго элемента кортежа, т.к. переменная res хранит 1 элемент
        if test(arg, res): #применяем входную функцию к каждому аргументу из args
            res = arg #если функция возвращает True, то присваиваем переменной res значение arg
    return res #возвращаем значение
 
 
def lessthan(x, y):
    """
    Возвращает логическое значение True или False
    Если x меньше чем y - вернет True
    """
    return x < y
 
 
def grtrthan(x, y):
    """
    Возвращает логическое значение True или False
    Если x больше чем y - вернет True
    """
    return x > y
 
 
print(minmax(lessthan, 4, 2, 1, 5, 6, 3)) #находим минимальное значение
print(minmax(grtrthan, 4, 2, 1, 5, 6, 3)) #максимальное
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
08.02.2019, 11:19
Lucky64, Для начала, пока не взявшись за код, обращу твое (думаю пора нам перейти на ты) внимание на следующее.
В питоне звезда * в определении функции, которая следует за инструкцией def , и звезда * в вызове функции, с помощью имени функции и круглых скобок, имеют разный смысл. Это нужно четко усвоить. И когда встречаешься со звездой * в аргументах функции, освежать в памяти эту разницу, если забыл.

Добавлено через 44 минуты
Цитата Сообщение от Lucky64 Посмотреть сообщение
#Создаем кортеж из test
это утверждение не верно. test это не кортеж. Это как правильно говорит Resistanse, входная функция, передаваемая для функции minmax() в качестве первого аргумента. Внутри функции minmax() имя переменной test заменяется на имя функции, которое мы указываем первым аргументом при вызове функции minmax().
Звезда * перед переменной args , размещенная в аргументах функции minmax() в ее определении, говорит питону, что все неименованные аргументы , начиная с данной позиции ( то есть после первого аргумента), которые находятся в вызове функции, объединяются в кортеж и этот кортеж присваивается переменной args, о чем и говорит Resistanse,

Добавлено через 15 минут
Для того, что бы понять, что делает функция minmax() , для начала рассмотри первый вариант вызова этой функции minmax(lessthan, 4, 2, 1, 5, 6, 3). В этом случае внутри функции minmax() везде вместо test() мысленно подставляй функцию lessthan() и старайся понять, что делает код.

Добавлено через 5 минут
Вообще то, что бы разбираться с такими примерами, не плохо бы уже пользоваться отладчиком в пошаговом режиме. Он покажет все, что происходим по ходу выполнения программы. Ты установил себе среду разработки с хорошим отладчиком, которую рекомендовал тебе Dax ?

Добавлено через 5 минут
Читай пояснения, которые тебе дал Resistanse. Если что то в них не понятно, то спрашивай.
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
08.02.2019, 12:20  [ТС]
Resistanse, Viktorrus,

Цитата Сообщение от Resistanse Посмотреть сообщение
Python
1
if test(arg, res): #применяем входную функцию к каждому аргументу из args
Говоря простым языком, если в arg и res содержатся аргументы из tests, то в этом случае результат будет True я все правильно понял?

Цитата Сообщение от Resistanse Посмотреть сообщение
Python
1
for arg in args[1:]: #начинаем итерацию со второго элемента кортежа, т.к. переменная res хранит 1 элемент
то есть в arg будут храниться все итерируемые элементы из args кроме первого правильно?
Сори за дотошность, просто раз пошло такое дело, решил уточнить непонятные моменты...

Добавлено через 10 минут
Цитата Сообщение от Viktorrus Посмотреть сообщение
Вообще то, что бы разбираться с такими примерами, не плохо бы уже пользоваться отладчиком в пошаговом режиме. Он покажет все, что происходим по ходу выполнения программы. Ты установил себе среду разработки с хорошим отладчиком, которую рекомендовал тебе Dax ?
установил, но он выдает те же самые ошибки с теми же самыми указаниями линии что и стандартный, по этому не стал на него переходить, мб я его не правильно как то использовал...
0
151 / 86 / 35
Регистрация: 05.08.2017
Сообщений: 257
08.02.2019, 12:28
Цитата Сообщение от Lucky64 Посмотреть сообщение
Говоря простым языком, если в arg и res содержатся аргументы из tests, то в этом случае результат будет True я все правильно понял?
Аргументы res и arg передаются в функцию и на основе сравнения будет возвращено True или False, как пример:
Python
1
2
3
4
5
def lessthan(x, y):
    return x < y
 
print(lessthan(10, 20)) #True - 10 меньше 20
print(lessthan(20, 10)) #False - 20 больше 10
А запись if test(arg, res): - это сокращенная запись от if test(arg, res) == True:
Пример:
Python
1
2
3
4
5
6
7
8
def lessthan(x, y):
    return x < y
 
if lessthan(10, 20):
    print("Первый аргумент меньше второго")
    
if lessthan(10, 20) == True: #эта конструкция эквивалентна первой
    print("Первый аргумент меньше второго")
Цитата Сообщение от Lucky64 Посмотреть сообщение
то есть в arg будут храниться все итерируемые элементы из args кроме первого правильно?
Да, это называется срез, в квадратных скобках указывается с какого элемента и по какой мы хотим получить список, пример:
Python
1
2
3
4
test_list = [1, 2, 3, 4, 6]
print(test_list[1:])#все, кроме первого - [2, 3, 4, 6]
print(test_list[:3])#первые 3 элемента - [1, 2, 3]
print(test_list[1:3])#со второго по 3 - [2, 3]
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
08.02.2019, 12:57  [ТС]
Цитата Сообщение от Resistanse Посмотреть сообщение
А запись if test(arg, res): - это сокращенная запись от if test(arg, res) == True:
вроде дошло... жаль что в книге главы не сопровождаются достаточным количеством практики... Спасибо за разжевывание!

Цитата Сообщение от Resistanse Посмотреть сообщение
Да, это называется срез, в квадратных скобках указывается с какого элемента и по какой мы хотим получить список, пример:
Это я усвоил вроде еще по мере изучения, просто решил уточнить по поводу передачи итерируемых элементов, благодарю!
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
08.02.2019, 14:26
От себя уточню
Цитата Сообщение от Lucky64 Посмотреть сообщение
то есть в arg будут храниться все итерируемые элементы из args кроме первого правильно?
На самом деле точнее сказать, что arg это переменная цикла и на каждом шаге она содержит только один элемент из среза args[1:] , который соответствует картежу args без элемента со смещением 0 (то есть без первого элемента). При этом переменная arg пробегает в цикле по всем элементам среза args[1:]. И в случае, когда в качестве test выступает функция lessthan(), мы определяем что меньше, очередной элемент из args[1:] или элемент из res . И если элемент из args[1:] меньше, то мы записываем его в res. В результате после работы цикла мы получаем в res наименьший элемент из картежа args, который и возвращается функцией.
Если же мы первым аргументом в функцию minmax() поместим функцию grtrthan() , то функция minmax() найдет наибольший элемент картежа и вернет его при выходе.
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
08.02.2019, 16:54  [ТС]
Цитата Сообщение от Viktorrus Посмотреть сообщение
На самом деле точнее сказать, что arg это переменная цикла и на каждом шаге она содержит только один элемент из среза args[1:]
странно, почему мы тогда не указываем конкретно, что будет проверятся именно первый элемент, то есть [1:2], сейчас попробовал, и результат уже другой... или args[1:] это указывается начало пути, и до какого именно элемента будет осуществляться перебор? получается так? то есть со 2 элемента и до самого конца?

Добавлено через 1 час 0 минут
Viktorrus, к стати закончил 19 главу сегодня, она мне прям зашла, лямбда прям спасает от создания сложных функций)) Завтра возьмусь за последнюю 20 главу в этой части и буду опять донимать вас вопросами по поводу решения задач из раздела: закрепления пройденного))
Так же установил сегодня повторно PyCharm, действительно, стоило немного привыкнуть, и он оказался весьма не плох! Viktorrus, Resistanse, Благодарю вас за то, что помогаете! В одного я бы наверное не осилил пройденный материал...
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
08.02.2019, 17:31
Цитата Сообщение от Lucky64 Посмотреть сообщение
или args[1:] это указывается начало пути
args[1:] это срез, который возвращает список, отличающийся по составу от картежа args только тем, что в нем взяты элементы из args начиная со второго (со смещением 1, так как у первого смещение 0) и дальше все до конца.
Напомню синтаксис среза.

X[I:J]
или
X[I:J:K]

X - последовательность

I,J - числовые индексы смещения в последовательности X

K - шаг выборки

X[I:J] означает: «извлечь из X все, начиная со смещения I и до смещения J, но не включая его». Возвращает новый объект, например для списка возвращает новый список.

X[I:J:K] означает: «Извлечь все элементы последовательности X, начиная со смещения I, вплоть до смещения J-1, с шагом K».

Пример:

>> S = 'Spam' # Строка из 4 символов

>>> S[1:3] # Срез строки S начиная со смещения 1 и до 2 (не 3)
'pa'
>>> S[1:] # Все, кроме первого элемента
'pam'

И затем цикл пробегает по всем элементам из вновь полученного списка args[1:]
Почему мы берем без первого элемента? Потому, что первый элемент мы уже поместили в переменную res и нам осталось проверить все остальные, что бы найти наименьший (когда у нас используется функция lessthan())

Добавлено через 4 минуты
Lucky64, перейдешь к задачам и которые будут не понятны разберем здесь.
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
08.02.2019, 17:45  [ТС]
Цитата Сообщение от Viktorrus Посмотреть сообщение
Почему мы берем без первого элемента? Потому, что первый элемент мы уже поместили в переменную res и нам осталось проверить все остальные
это я понял с самого начала)
Цитата Сообщение от Viktorrus Посмотреть сообщение
Lucky64, перейдешь к задачам и которые будут не понятны разберем здесь
Хорошо
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
10.02.2019, 02:55
https://tproger.ru/translation... se_mail_ru

Lucky64, Познавательная статья для беглого ознакомления, в качестве информации на будущее, о перспективах питона в визуализации данных.
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
10.02.2019, 06:34  [ТС]
Добавлено через 36 секунд
Цитата Сообщение от Viktorrus Посмотреть сообщение
Познавательная статья для беглого ознакомления, в качестве информации на будущее, о перспективах питона в визуализации данных.
обязательно гляну после завершения части из лутца

Добавлено через 15 минут
Viktorrus, епечалит еще то, что чем дальше в книгу, тем больше примеров которые нужно осознать, с каждым разом все тяжелее, и из за всего этого упал темп в прохождении Лутца... за вчера и сегодня осилил только половину 20 главы...
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
10.02.2019, 08:21
Lucky64, как раз об этом я и говорил

Цитата Сообщение от Lucky64 Посмотреть сообщение
печалит еще то, что чем дальше в книгу, тем больше примеров которые нужно осознать, с каждым разом все тяжелее
тут лучше начать проходить курсы на степике, что называется, с нуля - для закрепления...
добиться автоматизма, так сказать
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
10.02.2019, 09:01  [ТС]
IRIP, хочется просто довести начатое до конца... смысл сейчас опять начинать курсы с самого начала, если я иут не завершил начатое...
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
10.02.2019, 09:11
Lucky64, я не предлагаю бросать - я предлагаю ЗАКРЕПИТЬ прочитанное - курсами.

курсы для начинающих, дают материал приблизительно до 600 страницы Лутца
Это как курсовая работа =)
зато, после закрепления - можно продолжать изучение =)
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
10.02.2019, 12:36  [ТС]
Цитата Сообщение от IRIP Посмотреть сообщение
курсы для начинающих, дают материал приблизительно до 600 страницы Лутца
Это как курсовая работа =)
зато, после закрепления - можно продолжать изучение =)
Разберусь с 20 главой, а там посмотрю, в зависимости от того, как пойдет решение задач для закрепления материала.
Зашел на степик, зарегистрировался, начал курс, честно не выдержал и 10 минут, то какие-то управляющие и управляемые элементы, то хозяева и собаки, то выстроение таблиц... не знаю либо настроения не было и по этому оно все меня так выбесило, либо я не понял смысла курса... Просто с самого начала когда задали вопрос - что вы тут изучаете( ну или что то типо этого, точно не помню), и надо было выбрать варианты, зубы начали уже скрипеть)) не знаю мб просто Лутц сегодня вынес мне мозг...

Добавлено через 5 минут
Viktorrus, Не могу разобрать в чем проблема...
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import sys, mytimer # Импортирует функцию timer
reps = 10000
repslist = range(reps) # Вызов функции range вынесен за пределы цикла в 2.6
def forLoop():
    res = []
    for x in repslist:
        res.append(abs(x))
    return res
def listComp():
    return [abs(x) for x in repslist]
def mapCall():
    return list(map(abs, repslist))    # Вызов list необходим только в 3.0
def genExpr():
    return list(abs(x) for x in repslist) # Функция list вынуждает
# вернуть сразу все результаты
def genFunc():
    def gen():
        for x in repslist:
            yield abs(x)
 
    return list(gen())
 
print(sys.version)
for test in (forLoop, listComp, mapCall, genExpr, genFunc):
    elapsed, result = mytimer.timer(test)
    print('-' *33)
    print(' % -9s: % .5f = > [ % s... % s]' % (test.__name__, elapsed, result[0], result[-1]))
выдает ошибку:
C:\Users\123\PycharmProjects\untitled\ve nv\Scripts\python.exe C:/Users/123/.PyCharmCE2018.3/config/scratches/scratch.py
Traceback (most recent call last):
File "C:/Users/123/.PyCharmCE2018.3/config/scratches/scratch.py", line 11, in <module>
import sys, mytimer # Импортирует функцию timer
ImportError: No module named 'mytimer'

Process finished with exit code 1
сначала сам набрал, не получилось.
потом тупо скопировал, результат тот же...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2019, 12:36

Ищу доброго человека, который прособеседует по java
Ищу доброго человека чтобы поспрашивал по java, дабы проверить знания. Мечу на позицию java junior. Хочется проверить свои знания перед...

Кр по питону ?
У меня третий вариант и я не могу решить как это делать

Лабораторная по питону
Есть 2 емкости : кубическая с ребром Ф, цилиндрическая с высотой Н и радиусом R. Определить поместится ли жидкость объемом М в первую...

Задание по питону
Дана последовательность случайных чисел длиной n. Выбросить из ряда те элементы, значение которых равно a и b. Вывести полученное, а затем...

Питону не понравилось
import threading, time flag = True def proc(n): while flag==True: print(n) time.sleep(0.3) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
160
Закрытая тема Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru