python 使用While循环input序号,允许单个输入和多个输入要用逗号分隔或者用中横线,格式不对返回循环,输出结果
时间: 2024-11-05 09:32:08 浏览: 14
在Python中,你可以使用`while`循环结合`input()`函数来处理用户按序输入的情况,同时接受单个输入或多个输入通过逗号分隔或中横线。这里是一个简单的示例:
```python
while True:
user_input = input("请输入数字,用逗号或中横线分隔(例如:1,2,3 或 1-3),格式错误则请重新输入:")
# 检查输入是否符合格式要求
if '-' in user_input: # 搜索是否有"-"表示范围
nums = [int(n) for n in user_input.split('-')]
if len(nums) == 2 and nums[0] < nums[1]: # 确保输入的是连续的整数范围
break # 如果格式正确,跳出循环
else:
print("输入的范围格式不正确,请重新输入。")
elif ',' in user_input: # 分割逗号获取单独的数字
try:
nums = [int(n) for n in user_input.split(',')]
if all(isinstance(n, int) for n in nums): # 检查所有输入都是整数
break
else:
print("输入的数字应全部为整数,请重新输入。")
except ValueError:
pass # 如果转换失败,可能是非数字字符,提示后继续循环
else:
print("输入格式不正确,请按照数字之间用逗号或中横线分隔的方式输入。")
# 输出结果
print(f"你输入的序列是:{nums}")
阅读全文