python - 如果输入数字 0,如何结束 while 循环并按照其他说明进行操作
问题描述
我的代码将所有用户输入的项目放入一个列表中我希望它在输入 0 时停止并遵循其他命令,例如对列表进行排序,删除最高和最低值,然后找到它们的平均值 这是代码所以远的:
i = 0
sizes = []
while i == 0:
size = int(input("Enter the weight of your parcel in grams, enter 0 when done: "))
sizes.append(size)
if size < 1:
break
sortedsizes = sorted(sizes)
largest = max(sizes)
smallest = min(sizes)
sizes.remove(largest)
sizes.remove(smallest)
print(sizes)
解决方案
您不需要i
也不想要重量小于 0 的包裹。您可能要考虑使用float
而不是int
- 我住的地方我们测量kg
包裹或g
字母 - 两者都将包括分数(1.235kg 或 5.28g)。
如果有人输入"22kg"
任何数字转换将崩溃 - 你应该提防它:
sizes = []
while True:
try:
size = int(input("Enter the weight of your parcel in grams, enter 0 when done: "))
if size > 0:
sizes.append(size)
elif size == 0:
break
else:
raise ValueError() # negative weight
except ValueError:
print("Only positive numbers or 0 to quit. Do not input text or kg/g/mg.")
sortedsizes = sorted(sizes) # you do nothing with this - why sort at all?
largest = max(sizes)
smallest = min(sizes)
sizes.remove(largest)
sizes.remove(smallest)
print(sizes) # this prints the unsorted list that got min/max removed...
输出:
Enter the weight of your parcel in grams, enter 0 when done: 4
Enter the weight of your parcel in grams, enter 0 when done: 3
Enter the weight of your parcel in grams, enter 0 when done: 5
Enter the weight of your parcel in grams, enter 0 when done: 6
Enter the weight of your parcel in grams, enter 0 when done: -1
Only positive numbers or 0 to quit. Do not input text or kg/g/mg.
Enter the weight of your parcel in grams, enter 0 when done: DONE
Only positive numbers or 0 to quit. Do not input text or kg/g/mg.
Enter the weight of your parcel in grams, enter 0 when done: 2
Enter the weight of your parcel in grams, enter 0 when done: 0
[4, 3, 5] # this is the unsorted list that got min/max removed...
如果您只想从排序列表中删除 1 个最大值和 1 个最小值,您可以将其简单化:
sortedsizes = sorted(sizes)
maxval = sortedsizes.pop() # remove last one from sortedsizes (== max)
minval = sortedsizes.pop(0) # remove first one from sortedsizes (== min)
print(sortedsizes) # print the sorted values
独库:
推荐阅读
- statistics - 不同分布的 MP 检验
- android - 我在使用 compile 'com.theartofdev.edmodo:android-image-cropper:2.7.+' 这个库来裁剪图像时遇到问题
- python - LabelEncoder fit_transform() 函数中的问题
- vba - excel vba - 创建一个包含数组条目的集合
- asp.net - ASP.NET MVC Identity vs ASP.Net core 2.1 Identity(它们之间的交叉身份验证)
- sql-server-2008 - 请清楚地解释 CTE 查询?
- reactjs - 我是否应该在 OAuth2 中使用 JWT 令牌来提供安全 API
- c++ - 如何保护非托管应用程序中的字符串免受进程转储
- java - System.gc() 收集仍然被局部变量引用的对象
- jquery - 带有全景缩放和工具提示的图像地图区域