如何在另一条指令之后在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'