Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 添加int和str_Python - Fatal编程技术网

Python 添加int和str

Python 添加int和str,python,Python,您好,我正在阅读这本python书籍,其中一个练习说: 编写一个名为right_justify的函数,该函数将名为s的字符串作为参数,并打印具有足够前导空格的字符串,以便字符串的最后一个字母位于显示的第70列 好的,我有下面的代码,它打印70个空格和字符串'allen' def right_justify(s): print s right_justify(' ' * 70 + 'Allen') 但是当我试图从字符串“Allen”中减去空格数时 sub = len('allen') d

您好,我正在阅读这本python书籍,其中一个练习说:

编写一个名为right_justify的函数,该函数将名为s的字符串作为参数,并打印具有足够前导空格的字符串,以便字符串的最后一个字母位于显示的第70列

好的,我有下面的代码,它打印70个空格和字符串'allen'

def right_justify(s):
    print s
right_justify(' ' * 70 + 'Allen')
但是当我试图从字符串“Allen”中减去空格数时

sub = len('allen')
def right_justify(s):
    print s
right_justify(' ' * 70 - sub + 'Allen')
我得到:

-:'str'和'int'的操作数类型不受支持

为什么它在没有子变量的情况下工作,而在没有子变量的情况下工作? 我已经检查了sub的类型,结果显示为int。

您需要括号:

' ' * (70 - sub) + 'Allen'
您的代码评估为:

((' ' * 70) - sub) + 'Allen'
这不起作用,因为不能从字符串中减去int。

需要括号:

' ' * (70 - sub) + 'Allen'
您的代码评估为:

((' ' * 70) - sub) + 'Allen'

这是行不通的,因为你不能从字符串中减去一个整数。

正如马克所说,你需要在减法的周围加上括号

在你通过的论点中,你也在做正确的证明。该函数只打印您当前给它的内容

您应该只传递一个字符串s,然后让right_justify对该字符串进行处理(即计算出其长度,然后在其前面添加适当数量的空格),然后再打印它

比如:

def right_justify(s):
    sub = len(s)
    new_s = ' ' * (70 - sub) + s 
    print new_s

right_justify('Allen')

正如马克所说,减法需要括号

在你通过的论点中,你也在做正确的证明。该函数只打印您当前给它的内容

您应该只传递一个字符串s,然后让right_justify对该字符串进行处理(即计算出其长度,然后在其前面添加适当数量的空格),然后再打印它

比如:

def right_justify(s):
    sub = len(s)
    new_s = ' ' * (70 - sub) + s 
    print new_s

right_justify('Allen')
定义右对齐(s): . 印刷品(''*(70个透镜)+s) . 右图(“艾伦”) 艾伦

定义右对齐(s): . 印刷品(''*(70个透镜)+s) . 右图(“艾伦”) 艾伦


是的,我试过了,但我之前把括号加错了,我没有走错,我试过(“*70-sub)+“Allen”)thanks@philhxc,如果他的答案有帮助,请单击答案旁边的复选标记,表示您接受该答案。另外,Jdog的回答也有很多好的建议。是的,我试过了,但我之前添加了错误的括号,我没有走错方向,我试过(“*70-sub)+“Allen”)thanks@philhxc,如果他的答案有帮助,请单击答案旁边的复选标记,表示您接受该答案。另外,Jdog的回答有很多好的建议。而且,这只是一个练习。在现实世界中,最好使用它。i、 e.:
print'{:>30}'。格式
@philberndt我粘贴的行与上面函数中的三行完全相同。它也应该更具普遍性。而且,这只是一种锻炼。在现实世界中,最好使用它。i、 e.:
print'{:>30}'。格式
@philberndt我粘贴的行与上面函数中的三行完全相同。它也应该更具普遍性。