如果不是,如何使函数输入成为一个字符串?

时间:2013-01-16 22:49:30

标签: python string function input python-2.7

所以基本上,假设你定义了一个函数,然后在函数之后用()括号写一些东西。如果我写函数(同性恋),它最终会被'错误名称未定义'Python2.73

def lenRecur(aStr):
    '''
    aStr: a string

    returns: int, the length of aStr
    '''
    print type(aStr)
    return

def lenRecur2(aStr):
    '''
    aStr: a string

    returns: int, the length of aStr
    '''
    s = str(aStr)
    print type(s)
    return

因此,当我输入lenRecur(同性恋)或lenRecur2(同性恋)时,无论我做什么,它都会以错误结束。有没有办法避免它?不使用“”引号。

2 个答案:

答案 0 :(得分:6)

否 - 除非您的输入已经是包含字符串(或其他对象)的变量。

但是,您可以使用try-except块(但如果出现错误,它实际上不会执行任何操作)。

try:
    lenRecur(foo)
    lenRecur2(foo)
except NameError:
    pass

答案 1 :(得分:4)

在调用函数之前发生错误。 Python在调用函数之前尝试评估参数。所以,Python遇到了简单的名字gay并想知道,“那到底是什么?” 当它无法在本地,封闭,全局或内置作用域中找到它的值时,会引发NameError。

没有办法解决这个问题。你必须明确说明你的意思。如果gay是字符串,则必须使用引号。