LINUX.ORG.RU

Циклы PYTHON Варианты записи

 


0

2

Привет!

Можно ли исполнять циклы непосредственно в модулях или функциях? Вот например простой цикл в одну строчку

if x < y != 0:    print("rm ./test.txt")
корректна ли в PYTHON такая запись?

subprocess.Popen([if x < y != 0:    print("rm ./test.txt")],shell=True, stdout=subprocess.PIPE)

Если да, то какой правильный синтаксис вставки циклов? Или возможно ли например вывод цикла завести в лист не через a.append(), а другими методами?

a = 'if x < y != 0: ....'



Последнее исправление: beastie (всего исправлений: 1)

Ответ на: комментарий от deadNightTiger

Да, но тот же вопрос для FOR. Или синтаксис не правильный или логика языка подразумевает другое. Пока не понятно.

den3332011
() автор топика

какой правильный синтаксис вставки циклов?

Зависит от задачи, еси тебе нужно передать функцию, можешь использовать лямбды, если сформировать список, то list comprehension.

subprocess.Popen([if x < y != 0: print(«rm ./test.txt»)],shell=True, stdout=subprocess.PIPE)

Здесь ты пытаешься сделать что-то совсем странное, поскольку subprocess.Popen вызывает консольные команды, а не исполняет переданный ему код.

Если тебе нужно сформировать список, кортеж или словарь, можешь использовать list comprehension, например:

[x*x for x in range(10)]

вернёт список квадратов чисел от 0 до 9. Если тебе нужны условия здесь, то можешь использовать тернарный оператор:

[x*x if x%2 == 0 else 0 for x in range(10)]

Алсо лоркод.

grazor ★★
()

Можно ли исполнять циклы непосредственно в модулях или функциях?

man лямбды. Хотя нет, для начала man python.

Hater ★★
()
Ответ на: комментарий от deterok

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

Спасибо grazor, посоветовал обратить внимание генератор списков List Comprehensions.

den3332011
() автор топика
Ответ на: комментарий от den3332011

да можно, но какая у тебя в этом жизненная необходимость? чтоб сделать красиво ты еще слишком мало знаешьб man://python правильно посоветовали (google://ultimate guide to python etc)

anonymous
()
Ответ на: комментарий от den3332011

Про man://python тебе правильно рекомендуют, ибо

работать с ними можно только после добавления в листы

соверщенно неверно. Ты можешь считывать файл и построчно и посимвольно/побайтово, не используя списки вообще. А можешь сразу считать файл в строку.

Вот официальный мануал по работе с файлами, остальные маны можешь искать там же.

grazor ★★
()

Не могу поверить, что я зашел в этот тред, прочитав заголовок.

Virtuos86 ★★★★★
()

Пиши Y-комбинатор и фигачь всё анонимной рекурсией.

aedeph_ ★★
()

Можно ли исполнять циклы непосредственно в модулях или функциях?

То, что ты хочешь, наверное, называется «все есть выражение». В питоне такого нет, но есть в руби и скале.

nikolnik ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.