如何解决我如何将我的 int 更改为可迭代的内容?
问题是得到这个输出: 运行 1
Enter number of aisles in supermarket: 100
Enter the aisle number to visit: 1
Enter the aisle number to visit: 8
Enter the aisle number to visit: 5
Enter the aisle number to visit: 4
Enter the aisle number to visit: 10
Enter the aisle number to visit: 0
The minimum distance is 26 units
到目前为止我的代码是
numberAisles = int(input("Enter number of Aisles in supermarket:"))
aisles = int(input("Enter the aisle number to visit:"))
if aisles == 0:
print ("Not visiting any aisle")
else:
while aisles > 0:
aisles = int(input("Enter the aisle number to visit:"))
if aisles == 0:
iter (aisles)
maxaisle = max(aisles)
minaisle = min(aisles)
B = (maxaisle + minaisle)//2
mindis = ((maxaisle - B) + (B-minaisle))*2
print (f"The minimum distance is {mindis} units")
错误信息是“TypeError: 'int' object is not iterable”
解决方法
请对您的代码进行一些更改以使用 list 及其方法:
numberAisles = int(input("Enter number of Aisles in supermarket: "))
aisles = []
aisles.append(int(input("Enter the aisle number to visit: ")))
i = 0
if aisles[0] == 0:
print ("Not visiting any aisle")
else:
while aisles[i] > 0:
i += 1
aisles.append(int(input("Enter the aisle number to visit: ")))
if aisles[i] == 0:
iter (aisles)
maxaisle = max(aisles)
minaisle = min(aisles)
# B = (maxaisle + minaisle)//2
# minDis = ((maxaisle - B) + (B-minaisle))*2
minDis = ((maxaisle-minaisle))*2
print (f"The minimum distance is {minDis} units")
此处无需将 B
定义为与 ((maxaisle-minaisle))*2
等效的两个注释行
您可以在循环内跟踪 maxaisle 和 minaisle,但在外部进行 dis calc。使代码更简洁。
maxaisle = 0
minaisle = 0
aisle = 1
numberAisles = int(input("Enter number of Aisles in supermarket:"))
while aisle > 0:
aisle = int(input("Enter the aisle number to visit:"))
maxaisle = max(maxaisle,aisle)
minaisle = min(minaisle,aisle)
minDis = (maxaisle - minaisle)*2
if minDis == 0:
print ("Not visiting any aisles")
else:
print (f"The minimum distance is {minDis} units")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。