将字符串连接到在 python 中分配为 None 的变量



我想知道为什么你不能将字符串连接到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 ""

最新更新