我想知道为什么你不能将字符串连接到python中分配为None的变量。 我知道它被用作逻辑测试,但是在决定变量应该是字符串、整数之前,您将如何保持变量为空。对不起,这是我正在做的代码
从用户获取输入
preScraWord = input("\请输入您的单词:"(
将其转换为小写并获得单词长度
preScraWord = preScraWord.lower((
lenWord = len(preScraWord(
nLenWord = -lenWord-1
返回字 = 无
对于 range (-1, nLenWord, -1( 中的 i:
backWord += preScraWord[i]
打印单词
打印(背字(
听起来OP的问题如下:
def f(i):
if i == 1:
return "a string"
然后想做这样的事情:
a = ''
for i in range(5):
a += f(i)
这将在i > 1
时抛出异常,因为在这种情况下,f(i)
返回None
不能与之前的值 a
"a string"
的。有几种方法可以解决这个问题:
1.在串联之前检查f()
的返回类型:(LBYL(
a = ''
for i in range(5):
temp = f(i)
a = a if temp is None else a + temp
# this will skip the concatenation if temp is None
阿拉伯数字。捕获TypeError
异常:(EAFP(
a = ''
for i in range(5):
try:
a += f(i)
except TypeError:
continue
3.改变创造None
价值的事物:(智慧(
def f(i):
if i == 1:
return "a string"
return ""