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 min1 ← item
else if item < min2
then min2 ← item
output: min1, min2
这是我收到语法错误的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)
此代码返回:min1 = 4,min2 = 5,这是错误的:)。非常感谢任何帮助和建议,因为我是 Python 新手。谢谢!
解决方案
这些行需要正确缩进(注意:每个缩进的推荐空格数为 4):
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)
顺便说一句,用内置类型的名称命名变量不是一个好习惯。
最好改变它,也许让函数 return item
,这是你的代码的更简洁的形式:
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)
推荐阅读
- android - 如何测试广播接收器的接收?
- python - 安装 Django 时升级 pip 错误
- fonts - 将@fontface 添加到故事书
- ios - Xamarin Forms IOS导航栏
- django - 如果发布到分支,则更改某些变量的最佳实践
- curl - CURL 如何正确使用 curl_easy_escape()
- javascript - 引导程序 4:数据键盘 =“真”不工作
- c++ - 为什么编译器将类视为抽象?
- tensorflow - 如何在 TPU 上将模型并行性与自定义 Tensorflow 2.0 模型一起使用?
- c++ - googletest 错误:“HasSubstr”没有依赖于模板参数的参数