Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在另一条指令之后在python中编写内联for循环?_Python_For Loop_Command Line - Fatal编程技术网

如何在另一条指令之后在python中编写内联for循环?

如何在另一条指令之后在python中编写内联for循环?,python,for-loop,command-line,Python,For Loop,Command Line,从开始,适用于工程 root@messagerie-secours[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 root@messagerie-secours[10.10.10.19] /home/serveur # 如果你在中间,这是一个语法错误: root@messagerie-secours[10.10.10.19] /home/serveur # p

开始,适用于
工程

root@messagerie-secours[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
root@messagerie-secours[10.10.10.19] /home/serveur # 

如果你在中间,这是一个语法错误:

root@messagerie-secours[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
root@messagerie-secours[10.10.10.19] /home/serveur #
root@messagerie-secours[10.10.10.19]/home/serveur#python-c“a=2;对于x范围内的x(10):打印x;”
文件“”,第1行
a=2;对于x范围内的x(10):打印x;
^
SyntaxError:无效语法
root@messagerie-秒[10.10.10.19]/home/serveur#

有可能消除该语法错误吗?

您可以使用
itertools.count
生成0、1、2、

使用
\uuuu导入\uuuu
,您可以在一行中完成:

python -c 'for x in __import__("itertools").count(): print x'

在一行中编写多个语句和控制结构不是一个好主意,因为Python严重依赖缩进

您可以将代码正确地缩进到
loop.py
文件中,这样就可以了

#!/usr/bin/nev python

a = 2
for x in xrange(10):
    print x
使用
python loop.py
运行它

如果确实需要在命令行中编写程序,请尝试以下操作:

root@messagerie-secours[10.10.10.19] /home/serveur # python -c "
> a = 2
> for x in range(10) :
>     print x
> "

这取决于底层操作系统。在Unix上这将很容易,例如:

python -c "a=5
for i in range(a): print i"
正确地给出

0
1
2
3
4
在我的FreeBSD系统上,因为Unix shell允许引号之间换行


但顺便说一句,这在Windows CMD shell中是不可能的。

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
python-c'print“\n”.join(map(str,xrange(10)))

python以下内容在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

不,不可能在内联时删除语法错误并仍然使用for循环。exec通常不是一个坏主意吗?是的,但这是已知的输入,因此应该相对安全。很好!另外,第三个也可以这样编写(已测试,正在运行):
python-c$'a=2\nx范围内的x(1,10):\n print x'