Skip to main content
 首页 » 编程设计

python之我如何在这个 Python 作业中将列表、标量和向量联系在一起

2025年05月04日12zhwl

在我开始之前 - 让我们知道我的类(class)允许为这项作业寻求外部帮助,前提是我们不直接复制代码。我要的是帮助,而不是公然不诚实地获得代码。我无意以任何方式提出这个问题来作弊。

现在一切都清楚了......

这是作业:

#1:编写一个函数 scalar_mult(s, v),它接受一个数字 s 和一个列表 v,并返回 v 乘以 s 的标量倍数。

例如:

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]     
  """ 

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

import math 
 
s = input("Please enter a single number to be our scalar value: ") 
v = input("Please enter a vector value, like [1, 2] or [5, 6, 3], to be our vector value: ") 
#Note to self: TUPLES use the parentheses. LISTS use the brackets 
 
print "scalar_mult(", s, ",", + v, "is:" 
print v * s 
 
scalar_mult(s, v) 

但我不断收到此错误消息:

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

你知道如何解决这个问题吗?

然后是第二部分......

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

例如:

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!'     """  
  """ 

我还没有开始#2,但我真的不明白如何处理它。关于如何开始或如何运作的任何想法?

这是周五交的,昨天分配的。仅供引用。

非常感谢任何回答的人——我知道这是一个非常大的问题>。<

如果您需要任何关于作业的说明,请告诉我!任何帮助将不胜感激:)

请您参考如下方法:

对于帖子的第一部分,您的错误消息是由于您正在使用带有两个操作数的 + 运算符:a , (逗号) 和 v,这大概是一个列表。如果您只想打印 v,您的 print 语句应该如下所示:

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

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

>>> example_string = 'hello world!' 
>>> example_string[3] 
'l' 
>>> 

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