编写使用循环实现各种算法的Python程序

编写使用循环实现各种算法的Python程序,python,Python,我正在为一个类编写一个python程序,我不断地遇到这些语法错误,但无法找出它们。目标是在Python中实现该算法,以便它正确地设置min1和min2的值,这两个值应该包含列表中的两个最小值,尽管不一定按该顺序。该代码应基于以下伪代码: min1 ← list0 min2 ← list1 for each item in list if item < min1 then if min1 < min2 then min2 ← item else mi

我正在为一个类编写一个python程序,我不断地遇到这些语法错误,但无法找出它们。目标是在Python中实现该算法,以便它正确地设置min1和min2的值,这两个值应该包含列表中的两个最小值,尽管不一定按该顺序。该代码应基于以下伪代码:

min1 ← list0
min2 ← list1
for each item in list
   if item < min1
   then if min1 < min2
      then min2 ← item
      else min1 ← item
   else if item < min2
      then min2 ← item
output: min1, min2
min1← 列表0
min2← 清单1
对于列表中的每个项目
如果项目
下面是我收到语法错误的python代码:

list = [4, 5, 1, 9, -2, 0, 3, -5] 
min1 = list[0]
min2 = list[1]
  for item in list :
    if item < min1 :
      if min1 < min2 :
        item = min2
    else :
      item = min1 
    else :
      if item < min2 :
        item = min2

    print(min1, min2)
    return(min1, min2)
list=[4,5,1,9,-2,0,3,-5]
min1=列表[0]
min2=列表[1]
对于列表中的项目:
如果项目

此代码返回:min1=4,min2=5,这是错误的:)。非常感谢您的帮助和建议,因为我是Python新手。谢谢大家!

行需要适当缩进(注意:建议每缩进4个空格):


您正在到处分配项。我想你真的想分配给min1和min2?在初始化之后,您不会更改它们。这就是为什么它们仍然是4和5。

问题在于第一行之后的间距。首先,for循环的主体必须缩进。其次,作业是
=
,而不是
==
,因为您的编辑,您有了新的缩进问题。请询问某个特定问题,并包含所询问问题的完整错误消息。抱歉,上面的编辑现在已正确。for循环的主体是缩进的,赋值应该是=我仍然得到一个错误:SyntaxError:“return”函数外部有一个更基本的问题,OP已经解决了,这个答案没有纠正任何问题,那就是他误解了伪代码。其目的不是分配给
(为什么要分配给循环变量?),而是更新
min1
min2
的值。
list = [4, 5, 1, 9, -2, 0, 3, -5] 
min1 = list[0]
min2 = list[1]
for item in list:
    if item < min1:
        if min1 < min2:
            item = min2
        else:
            item = min1 
    else:
        if item < min2:
            item = min2
    print(min1, min2)
    return(min1, min2)
def func(lst):

    min1 = lst[0]
    min2 = lst[1]

    for item in lst:
        if item < min1 < min2:
            item = min2
            
        elif item < min1:
            item = min1
            
        elif item < min2:
            item = min2
            
        print(min1, min2)
        return(item)


lst = [4, 5, 1, 9, -2, 0, 3, -5]
func(lst)