簡體   English   中英

堅持下一個字母生成器 - Python 3

[英]Stuck on next letter generator — Python 3

目前,我正在網上學習一些計算機科學課程。 我已經發出了編寫程序的任務,該程序在有效輸入后將打印字母表中的下一個字母。 這是我的代碼:

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

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

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

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

現在,我確實看到了代碼的問題,雖然我不知道如何糾正它。 基本上,在第二行到最后一行代碼中,我希望它基本上說“如果nextletter不等於{或[print nextletter”。

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

你並不需要測試這些字符在所有 在它之前的代碼中,你要確保nextletter 永遠不會[{ ,如果你只是為那里的nextletter分配一個不同的字母:

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

如果您仍需要進行此類測試,請使用not in運算符

if nextletter not in '[{':

not in返回True ,如果左邊的操作數不存在右側的順序排列。 我在我的例子中使用了一個帶有兩個字符的字符串,它被視為一個序列:

>>> '[' in '[{'
True
>>> '0' in '[{':
False

not in會員運營商中使用:

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

另請注意,如果使用if-elif構造而不是單個if's ,則可以避免第三次測試。 這樣,你可以把第三部分放在一個else塊中。

雖然其他答案是正確的,但正確的做法是使用elifelse

if nextletter == ("[") :
    print("A")
elif nextletter == ("{") :
    print("a")
else :
    print(nextletter)

問題是你在詢問nextletter是否不等於("[","{")的元組。 你想問它是不是等於“[”或“{”。 因此,你必須問, if nextletter != "[" and nextletter != "{"這將檢查它是否既不是“[”也不是“{”。 希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM