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 因为 print 语句不必在上次迭代中返回任何内容,但我如何跳过它?如果我使用 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!"
关于python - 如何替换 print 以避免在输出中打印 NONE ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60092234/