Как написать inline для цикла в python после другой инструкции?
Начиная с работ
[email protected][10.10.10.19] /home/serveur # python -c "for x in xrange(10):print x;" 0 1 2 3 4 5 6 7 8 9 [email protected][10.10.10.19] /home/serveur #
Если у вас есть в середине, это синтаксическая ошибка:
[email protected][10.10.10.19] /home/serveur # python -c "a=2;for x in xrange(10):print x;" File "<string>", line 1 a=2;for x in xrange(10):print x; ^ SyntaxError: invalid syntax [email protected][10.10.10.19] /home/serveur #
Можно ли избавиться от этой синтаксической ошибки?
- Как определить, был ли запущен скрипт Python через командную строку?
- Как проверить, завершена ли печать PDF в командной строке linux
- не может редактировать строку в командной строке python в Linux
- запустить скрипт python из командной строки, а затем ввести интерактивный режим
- Как принять строку, начинающуюся с # в python?
Woo, много решений! здесь некоторые другие:
python -c 'print "\n".join(map(str, xrange(10)))' python <<"EOF" for x in range(10): print x EOF echo $'a=12\nfor x in range(a): print x' | python
Это зависит от ОС. Это будет просто на Unix-подобном:
python -c "a=5 for i in range(a): print i"
правильно дает
0 1 2 3 4
в моей системе FreeBSD, потому что оболочки Unix допускают новую линию между кавычками.
Но AFAIK, это невозможно в оболочке Windows CMD.
Написание mutlitple операторов и структур управления в одной строке не является хорошей идеей, так как Python сильно зависит от отступов.
Вы можете правильно loop.py
свой код в файле loop.py
и все будет в порядке.
#!/usr/bin/nev python a = 2 for x in xrange(10): print x
Запустите его с помощью python loop.py
Если вам действительно нужна программа, написанная в командной строке, попробуйте следующее:
[email protected][10.10.10.19] /home/serveur # python -c " > a = 2 > for x in range(10) : > print x > "
Вы можете использовать itertools.count
который даст 0, 1, 2, ….
С __import__
вы можете сделать это в одной строке:
python -c 'for x in __import__("itertools").count(): print x'
Возможно, это то, что вы ищете. Взгляните на ответ Томаха.
Как поместить несколько операторов в одну строку
Для меня на Python 2.7 работает следующее:
python -c "exec('\n'.join(['a=42', 'for x in xrange(10):', ' print x', 'print a']))"
Выход:
0 1 2 3 4 5 6 7 8 9 42
- Ткань: выполнение встроенного Python на целевом хосте?
- Функция открытия файла .txt и содержимого печати не работает.
- Странная ошибка вызова java-программы из python через командную строку
- Как узнать, был ли запущен скрипт python с использованием опции -m интерпретатора?
- Сохранять историю команд между (i) сеансами python
- Какая хорошая командная структура командной строки для Python 2 и 3?
- в python получить вывод системной команды в виде строки
- Командная строка в коде R
- Как создать функцию «cmd» в Python?
- Печать файла и настройка параметров принтера
- В чем разница между запуском ./file.py и python file.py?