如何解决Python 3中的“字符串不可调用”错误?

时间:2018-07-08 18:06:11

标签: python python-3.x

任何指导表示赞赏。我是编程新手。

问题:“ str无法调用”的运行时错误。并且,可能是语义错误。详情:“如果镜头<= 70: TypeError:“ str”对象不可调用”

预期结果:我正在尝试编写一个接受字符串的函数,然后打印该字符串,以使字符串的最后一个字母位于显示屏的第70列。

我尝试过的方法:在PEP8中运行代码,它不返回任何语法错误。删除了将str分配给s的原始行。

Python 3中的代码:

def right_justify(s):
    '''
    (string) -> string
    takes a string named s
    places it in column 70 - len of string
    '''
    s = input("Type in a word: ")
    for len in s:
        if len(s) <= 70:
            len(s) + 70 - len(s)
    return s 

print(right_justify)

4 个答案:

答案 0 :(得分:3)

如果我理解您的要求,则希望在字符串前面放置足够的空格,以便其最后一个字符在第70列中。

您不需要遍历字符串。这将实现您所需要的。请注意,将input放在函数中没有意义,因为您不能使用字符串参数来调用函数。

def right_justify(s):
    '''
    (string) -> string
    takes a string named s
    places it in column 70 - len of string
    '''
    if len(s) <= 70:
        output = ((70 - len(s)) * " ") + s
        return output

input_string = input("Type in a word: ")
output_string = right_justify(input_string)
print(output_string)

答案 1 :(得分:1)

最简单的方法是:

def right_justify(s):
    return "%70s" % s

答案 2 :(得分:0)

只需替换

  

len变量

还有别的。

len是一个Python关键字,其保留,不能用作变量

答案 3 :(得分:-3)

'len'是Python保留的关键字,请勿将关键字用作变量名。

更正

def right_justify(s):
'''
(string) -> string
takes a string named s
places it in column 70 - letter of string
'''
res = input("Type in a word: ")
if len(res) <= 70: 
      res = res + (70 - len(res)) * " "
      return output

print(right_justify)