Python 添加int和str
您好,我正在阅读这本python书籍,其中一个练习说: 编写一个名为right_justify的函数,该函数将名为s的字符串作为参数,并打印具有足够前导空格的字符串,以便字符串的最后一个字母位于显示的第70列 好的,我有下面的代码,它打印70个空格和字符串'allen'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
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我粘贴的行与上面函数中的三行完全相同。它也应该更具普遍性。