在这个Python任务中,如何将列表、标量和向量联系在一起?

2024-10-06 08:00:30 发布

您现在位置:Python中文网/ 问答频道 /正文

在我开始之前-让大家知道,只要我们不直接复制代码,我的类可以为这个任务寻求外部帮助。我所要求的是帮助,而不是公然不诚实地获得的代码。我无意以任何方式问这个问题来作弊。在

现在一切都解决了。。。。在

任务如下:

一个<35v的函数,它返回一个

例如:

def scalar_mult(s, v):
  """    
  >>> scalar_mult(5, [1, 2])       
  [5, 10]       
  >>> scalar_mult(3, [1, 0, -1])      
  [3, 0, -3]       
  >>> scalar_mult(7, [3, 0, 5, 11, 2])       
  [21, 0, 35, 77, 14]    
  """

我已经开始了这一部分,这就是我所拥有的:

^{pr2}$

但我一直收到这个错误消息:

   print "scalar_mult(", s, ",", + v, "is:"
 TypeError: bad operand type for unary +: 'list'

你知道怎么解决这个问题吗?在

还有第二部分。。。在

#2:编写一个函数replace(s,old,new),在字符串s中用new替换所有出现的old。

例如:

def replace(s, old, new):     
  """      
  >>> replace('Mississippi', 'i', 'I')       
  'MIssIssIppI'       
  >>> s = 'I love spom!  Spom is my favorite food.  Spom, spom, spom, yum!'      
  >>> replace(s, 'om', 'am')       
  'I love spam!  Spam is my favorite food.  Spam, spam, spam, yum!'
  >>> replace(s, 'o', 'a')       
  'I lave spam!  Spam is my favarite faad.  Spam, spam, spam, yum!'     """ 
  """

我还没有开始,但我真的不知道该怎么做。关于如何开始或如何工作有什么想法吗?在

这是星期五交的,昨天交的。仅供参考。在

在此之前,非常感谢所有回答我的人——我知道这是一个非常重要的问题>;<

如果你需要任何关于任务的说明,请告诉我!如有任何帮助,我们将不胜感激:)


Tags: 函数代码newismydefspamold
3条回答

在文章的第一部分,您的错误消息是由于您使用了带有两个操作数的+运算符:一个,(逗号)和{},这可能是一个列表。如果您只想打印v,那么您的print语句应该如下所示:

print "scalar_mult(", s, ",", v, "is:"  # Note that I removed the `+`

对于第二部分,有许多方法可以解决这个问题,但从概念上来说,最简单的方法是理解python中的字符串是一个字符列表,因此可以对其进行类似于数组的操作。例如:

^{pr2}$

当然,我不能为您回答您的家庭作业,但我绝对建议您看看python的built-in types documentation。它可以帮助您理解基本的字符串操作,以便您可以构建新函数。希望这能帮你一点忙:)

因此,在Python中,您要实现的目标是不可能的。你可能要做的是

>>> def scalar_mult(s, v):
    return [s*x for x in v]

>>> scalar_mult(5, [1, 2])
[5, 10]
>>> 

现在你看到的就是列表理解。你也可以用地图来做同样的事情,但是你可以把它当作练习。在

如果你在代码中深入的观察每一个元素的值。结果会被放入一个你能理解的新列表中。在

对于第二个问题,您通常应该使用库replace,但似乎您可能不使用它。所以你可以浏览自我注释的代码

^{pr2}$

第一个原因是Python是强类型的,因此不能将任意类型添加到一起。在

>>> '%d %r' % (1, [2, 3])
'1 [2, 3]'

对于第二个,委托给替换的string方法。在

相关问题 更多 >