1

次のコードはエラーを示しています。

if ((type(varA) or type(varB) ) == type('t')):
    print "string involved"
elif varA<varB:
    print "RANDOM"

この場合のエラーは次のとおりです。

Test Values: varA = 0, varB = adios

出力:

RANDOM

この他のコードの一部

if ((type(varA) == type('t')) or (type(varB)== type('t'))):
    print "string involved"
elif varA<varB:
    print "RANDOM"`

次のテスト値の場合:

Test Values: varA = 6, varB = adios

出力は次のとおりです。

string involved

これら2つの「if」条件の違いは何ですか? 私はそれらが同じ論理であることを発見しています!

4

3 に答える 3

5

これは間違っています:

if ((type(varA) or type(varB) ) == type('t')):

そのはず:

if type(varA) == str or type(varB) == str:

同様に:

if isinstance(varA, str) or isinstance(varB, str):

またはもう少し短い:

if str in ((type(varA), type(varB)):
于 2013-10-21T01:51:46.510 に答える