任何指导表示赞赏。我是编程新手。
问题:“ 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)
答案 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)