[英]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.