如何在Python中将函数参数设置为字符串?

Vik*_*ran 2 python string parameters

def count(string,letter):
    count=0
    for each in string:
        if each==letter:
            count=count+1
    print count
Run Code Online (Sandbox Code Playgroud)

有没有办法设置参数以自动接受字符串形式的输入,这样用户就不必添加引号?

mgi*_*son 6

我想您是在问是否可以像这样调用该函数:

count(this is my string, i)  # 3
Run Code Online (Sandbox Code Playgroud)

而不是像这样:

count('this is my string', 'i')  # 3
Run Code Online (Sandbox Code Playgroud)

而答案是没有办法做到这一点。解析源代码时会解析参数,并且源代码解析器无法从多个输入参数中消除包含逗号的字符串的歧义。

当然,这只是解析器歧义的一个例子。如果要提出这样的功能,我想如果您对输入字符串的格式非常严格(没有逗号,额外的语法来区分具有变量名称的字符串和没有变量名称的字符串等),您可能可以想出一个语法来让它工作。然而,记住所有这些比仅仅将字符串括在引号中要困难得多(而且这会让 python 解析器使用起来更加麻烦)。总而言之,我认为引入这样的功能对语言来说将是一种净损失(尽管我只是一个不是 BDFL 的人,所以不要将我的观点误认为是观点)重要的人)。


Mac*_*Fan 5

如果您想要一个字符串或浮点等形式的参数,请尝试以下操作:

def add(x: float, y: float):
    z = x + y
    return z
Run Code Online (Sandbox Code Playgroud)

  • 如果是字符串,则为“y: str”。 (3认同)