python 使用While循环input只接受单个数字或者用逗号分隔的数字或者用中横线选定区间的数字,可以逗号分隔的数字和用中横线选定区间的数字同时使用,格式不对返回循环,输出结果
时间: 2024-11-06 15:13:26 浏览: 10
在Python中,如果你想通过`while`循环获取用户输入并限制只能是单个数字、由逗号分隔的数字列表或者是用中横线分隔的区间表示,你可以这样做:
```python
while True:
input_str = input("请输入一个数字、一串逗号分隔的数字,或者一个范围(例如: 1,5-10): ")
# 检查输入是否符合上述格式
if ',' in input_str: # 分割成逗号分隔的数字列表
try:
num_list = [int(num) for num in input_str.split(',')]
except ValueError:
print("输入的数字有误,请重新输入")
continue
elif '-' in input_str: # 判断是否是范围
try:
start, end = map(int, input_str.split('-'))
if start > end:
print("范围错误,起始数字大于结束数字,请重新输入")
continue
except ValueError:
print("范围格式错误,请重新输入")
continue
else: # 如果既无逗号也无范围,则尝试直接转换为整数
try:
num = int(input_str)
num_list = [num]
except ValueError:
print("请输入一个单个数字或正确的范围")
# 如果所有检查都通过,说明输入有效
break
print("输入的数字或范围是:", num_list)
```
在这个例子中,程序会持续循环直到用户输入满足条件为止。如果不符合要求,会提示用户重新输入。
阅读全文