题解 | 多组数据a+b III
多组数据a+b III
https://www.nowcoder.com/practice/7e094c0a3a9945b3bee8e1f3c9ea246a
import sys
while True: # 无限循环
a, b = map(int, input().split())
# 判断停止特征
if a+b == 0:
break # 跳出循环
# 正常处理
if a+b != 0:
print(a+b)
如果 我需要一个循环,如果碰到某些用户输入特征就停止
Python 循环中如何根据输入特征停止
🎯 三种方法:
方法1:用 while True + break(最常用)
python
while True: # 无限循环
用户输入 = input("请输入:")
# 判断停止特征
if 用户输入 == "exit": # 特征1:输入"exit"
print("退出程序")
break # 跳出循环
if 用户输入 == "": # 特征2:输入空行
print("检测到空行,停止")
break
if "stop" in 用户输入: # 特征3:输入包含"stop"
print("检测到stop关键词")
break
# 正常处理
print(f"你输入了:{用户输入}")
方法2:用 for 循环 + break
python
import sys
for line in sys.stdin:
输入 = line.strip()
# 停止特征
if 输入 == "quit":
print("检测到quit,停止输入")
break
if 输入.lower() == "exit": # 不区分大小写
break
# 处理输入
print(f"处理:{输入}")
方法3:用标志变量
python
继续循环 = True
while 继续循环:
用户输入 = input()
# 多种停止特征
if 用户输入 in ["end", "exit", "quit", "stop"]:
print("停止输入")
继续循环 = False # 改变标志
# 或者用 break 直接跳出
elif 用户输入.startswith("bye"): # 以"bye"开头
print("再见!")
break
elif 用户输入.isdigit() and int(用户输入) < 0: # 输入负数
print("检测到负数,停止")
break
else:
print(f"正常处理:{用户输入}")
📝 实际例子:
例子1:读到特定单词停止
python
print("输入单词(输入###停止):")
while True:
word = input().strip()
if word == "###":
print("检测到###,停止")
break
if word == "":
print("空行,继续...") # 不停止,只是跳过
continue # 跳过本次循环,继续下一次
print(f"单词长度:{len(word)}")
例子2:读到特殊格式停止
python
import sys
print("输入数字进行计算(输入q停止):")
for line in sys.stdin:
内容 = line.strip()
# 停止特征
if 内容 == "q" or 内容 == "Q":
break
if 内容.startswith("end"): # 以end开头
break
if 内容 == "0": # 输入0停止
print("检测到0,停止")
break
# 尝试转数字计算
try:
数字 = float(内容)
print(f"平方是:{数字 ** 2}")
except:
print("输入的不是数字!")
💡 常用停止特征判断:
1. 特定字符串
python
if 输入 == "exit": if 输入 in ["quit", "exit", "stop"]: if 输入.lower() == "end": # 不区分大小写
2. 包含关键词
python
if "stop" in 输入:
if 输入.startswith("bye"): # 以...开头
if 输入.endswith("end"): # 以...结尾
3. 特殊格式
python
if 输入 == "": # 空行 if 输入 == "\n": # 只有换行 if 输入.isspace(): # 全是空白字符
4. 数值特征
python
if 输入 == "0": # 输入0 if 输入 == "-1": # 输入-1 if 输入.isdigit() and int(输入) < 0: # 负数
5. 特殊符号
python
if 输入 == "#": # 单个# if 输入 == "###": # 三个# if 输入 == "!!": # 感叹号
🎮 完整示例:用户注册系统
python
print("=== 用户注册系统 ===")
print("输入用户名(输入'exit'退出或'list'查看用户):")
users = []
while True:
用户名 = input("用户名: ").strip()
# 停止特征
if 用户名.lower() == "exit":
print("退出注册系统")
break
# 查看用户特征
if 用户名.lower() == "list":
print("已注册用户:", users)
continue # 不停止,继续循环
# 空用户名特征
if 用户名 == "":
print("用户名不能为空!")
continue
# 特殊符号特征(不允许包含@)
if "@" in 用户名:
print("用户名不能包含@符号!")
continue
# 正常处理
users.append(用户名)
print(f"用户 '{用户名}' 注册成功!")
print(f"已有 {len(users)} 个用户")
⚠️ 注意事项:
1. break 和 continue 区别
python
while True:
输入 = input()
if 输入 == "skip":
continue # 跳过这次,继续下次循环
if 输入 == "stop":
break # 完全停止循环
2. 多重循环中的 break
python
while True:
for i in range(5):
if i == 3:
break # 只跳出for循环,while还在继续!
break # 再跳出while
3. 使用 sys.stdin 时
python
import sys
for line in sys.stdin:
if line.strip() == "exit":
break # 可以正常停止
简单说:在循环里加 if 特征条件: break 就能在满足条件时停止!

