[英]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
塊中。
雖然其他答案是正確的,但正確的做法是使用elif
和else
:
if nextletter == ("[") :
print("A")
elif nextletter == ("{") :
print("a")
else :
print(nextletter)
問題是你在詢問nextletter是否不等於("[","{")
的元組。 你想問它是不是等於“[”或“{”。 因此,你必須問, if nextletter != "[" and nextletter != "{"
這將檢查它是否既不是“[”也不是“{”。 希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.