相关疑难解决方法(0)

Python 2如何比较字符串和int?为什么列表比较大于数字,而元组大于列表?

以下代码段使用输出进行注释(如ideone.com上所示):

print "100" < "2"      # True
print "5" > "9"        # False

print "100" < 2        # False
print 100 < "2"        # True

print 5 > "9"          # False
print "5" > 9          # True

print [] > float('inf') # True
print () > []          # True
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么输出是这样的?


实施细节

  • 这种行为是由语言规范强制执行的,还是由实现者决定的?
  • 任何主要的Python实现之间是否存在差异?
  • Python语言版本之间是否存在差异?

python comparison types python-2.x

172
推荐指数
2
解决办法
8万
查看次数

python argparse:没有标志的arg

我有以下代码:

parser.add_argument('file', help='file to test')
parser.add_argument('-revs', help='range of versions', nargs='+', default=False)
Run Code Online (Sandbox Code Playgroud)

有没有办法-revs在使用它时不使用标志,如下所示:

./somescript.py settings.json 1 2 3 4
Run Code Online (Sandbox Code Playgroud)

python argparse python-3.x

9
推荐指数
1
解决办法
9013
查看次数

使用Python命令行参数作为函数名称和函数值

与此问题相关的python 中的命令行参数。

使用 SYS 模块,如何在代码中使用命令行参数作为函数名称和函数值 - 而不导入其他模块?

我想要一个仅使用 sys 的解决方案。另外,请不要使用可变长度参数答案。这些令人困惑。假设在命令行中仅指定了函数名称和一个函数变量。

import sys

def reversal(aaa): return aaa[::-1]

a = sys.argv[1]
b = sys.argv[2]

print a(b)
Run Code Online (Sandbox Code Playgroud)

在命令行中

cpu_location$ python blah.py reversal 'abcdefg'

Traceback (most recent call last):
File "blah.py", line 8, in <module>
print a(b)
TypeError: 'str' object is not callable
Run Code Online (Sandbox Code Playgroud)

我想知道如何使 sys.argv[1] 被视为函数名,从而调用我定义的函数。

我在这方面看到的其他帖子是以下内容的混搭: - 处理 C/C++ 并添加一些其他模块 - 根本不使用 sys - 使用 argv 项作为函数的值和其他文件的名称,而不是功能

command-line-arguments python-2.7

1
推荐指数
1
解决办法
4879
查看次数