2

現在、オンラインでコンピューター サイエンスのレッスンを受けています。私は、有効な入力があればアルファベットの次の文字を出力するプログラムを書くという任務を与えられました。これが私のコードです:

char = input()
ordchar = ord(char)
nextletter = ordchar + 1
nextletter = chr(nextletter)

if nextletter == ("["):
    print("A")

if nextletter == ("{"):
    print("a")

if nextletter!=("[","{"):
    print(nextletter)

コードに問題があることはわかりましたが、修正方法はわかりません。基本的に、コードの最後から 2 行目で、基本的に「次の文字が { または [ 次の文字と等しくない場合は次の文字を印刷する」と言う必要があります。

4

5 に答える 5

5
if nextletter not in ["[", "{"]:
    print(nextletter)
于 2013-02-17T15:51:52.963 に答える
5

これらの文字をテストする必要はまったくありません。その前のコードでnextletterは、そこに別の文字を割り当てるだけで、 がまたはのいずれにもならないことを確認します。[{nextletter

if nextletter == "[":
    nextletter = "A"
elif nextletter == "{":
    nextletter = 'a'

そのようなテストを行う必要がある場合は、not in演算子を使用します。

if nextletter not in '[{':

not inTrue左側のオペランドが右側のシーケンスに存在しない場合に返します。この例では、シーケンスとしてカウントされる 2 文字の文字列を使用しました。

>>> '[' in '[{'
True
>>> '0' in '[{':
False
于 2013-02-17T15:53:04.150 に答える
3

not inメンバーシップ演算子を使用:

if nextletter not in ("[","{"):
    print(nextletter)

if-elifまた、 individual ではなくコンストラクトを使用した場合は、3 番目のテストを回避できることに注意してくださいif'selseそうすれば、3番目の部分をブロックに入れることができます。

于 2013-02-17T15:51:43.733 に答える
0

他の答えは正しいですが、あなたが望むことをする正しい方法はelifandを使用することですelse:

if nextletter == ("[") :
    print("A")
elif nextletter == ("{") :
    print("a")
else :
    print(nextletter)
于 2013-02-17T15:55:32.820 に答える
0

問題は、 nextletter が のタプルと等しくないかどうかを尋ねていることです("[","{")。「[」または「{」と等しくないかどうかを尋ねたかったのです。したがって、質問する必要があります。 if nextletter != "[" and nextletter != "{" これは、「[」でも「{」でもないかどうかを確認します。お役に立てれば

于 2013-02-17T15:57:04.077 に答える