题解 | 多组数据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 就能在满足条件时停止!

#如果再来一次,你还会选择这个工作吗?#
全部评论

相关推荐

01-26 19:51
门头沟学院 Java
isabener:怎么感觉像群发的呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务