-4
int_string = input("What is the initial string? ")
int_string = int_string.lower()

入力の大文字と小文字を区別しないようにするにはどうすればよいですか

4

2 に答える 2

4
class CaseInsensitiveStr(str):
    def __eq__(self, other):
        return str.__eq__(self.lower(), other.lower())
    def __ne__(self, other):
        return str.__ne__(self.lower(), other.lower())
    def __lt__(self, other):
        return str.__lt__(self.lower(), other.lower())
    def __gt__(self, other):
        return str.__gt__(self.lower(), other.lower())
    def __le__(self, other):
        return str.__le__(self.lower(), other.lower())
    def __ge__(self, other):
        return str.__ge__(self.lower(), other.lower())

int_string = CaseInsensitiveStr(input("What is the initial string? "))

すべての反復コードが気に入らない場合は、total_orderingこのようなメソッドのいくつかを埋めるために利用できます。

from functools import total_ordering

@total_ordering
class CaseInsensitiveMixin(object):
    def __eq__(self, other):
        return str.__eq__(self.lower(), other.lower())
    def __lt__(self, other):
        return str.__lt__(self.lower(), other.lower())

class CaseInsensitiveStr(CaseInsensitiveMixin, str):
    pass

テストケース:

s = CaseInsensitiveStr("Foo")
assert s == "foo"
assert s == "FOO"
assert s > "bar"
assert s > "BAR"
assert s < "ZAB"
assert s < "ZAB"
于 2013-03-14T02:49:52.993 に答える
0

ここinput()に記載されているように、問題は機能によるものです

この関数は、ユーザー エラーをキャッチしません。入力が構文的に有効でない場合、 aSyntaxErrorが発生します。評価中にエラーが発生した場合は、他の例外が発生する可能性があります。

raw_input()ユーザーからの一般的な入力に関数を使用することを検討してください。

したがって、単に使用するraw_input()と、すべてが正常に機能します

于 2013-03-14T02:49:59.037 に答える