簡體   English   中英

如何替換打印以避免在輸出中打印 NONE?

[英]How to replace print to avoid printing NONE in output?

def sortString(string):
    if type(string)==str:
        for i in string:
            if (i>="A" and i<="Z"):
                print(i, end="")
    else:
        return("Not a string!")
print(sortString("ZOMG Hello, CS1301!!"))

輸出:

ZOMGHCSNone

我知道我得到 None 因為打印語句在上次迭代時不必返回任何內容,但我如何跳過它? 如果我把 return 而不是 print,循環在第一次迭代時停止。

如果刪除返回值的打印輸出,則可以將return("Not a string!")替換為print("Not a string!") 此外,要檢查類型使用isinstance

def sort_string(string):
    if isinstance(string, str):
        for i in string:
            if "A" <= i <= "Z":  # simplified i>="A" and i<="Z"
                print(i, end="")
    else:
        print("Not a string!")

sort_string("ZOMG Hello, CS1301!!")

輸出ZOMGHCS

您還可以從sortString()內部刪除打印並將值作為字符串返回

def sort_string(string):
    if isinstance(string, str):
        s = ''
        for i in string:
            if "A" <= i <= "Z":
                s += i
        return s
    else:
        return "Not a string!"

print(sort_string("ZOMG Hello, CS1301!!"))

或者使用列表理解

def sort_string(string):
    if isinstance(string, str):
        return ''.join(i for i in string if "A" <= i <= "Z")

    return "Not a string!"

這行得通嗎?

def sortString(string):
    if type(string)==str:
        for i in string:
            if (i>="A" and i<="Z"):
                print(i, end="")
    else:
        return("Not a string!")

retVal = sortString("ZOMG Hello, CS1301!!")

if retVal :
    print(retVal)

暫無
暫無

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

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