You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中输入不匹配时如何实现循环重新获取输入?

解决输入不匹配时循环获取输入的问题

原代码的问题分析

  • 第一段代码用if判断:输入不匹配时仅打印一次提示,程序不会重新获取输入,直接继续执行后续逻辑或终止,无法实现循环输入的需求。
  • 第二段代码的while循环:循环体内没有重新调用input()更新buy的值,导致buy始终是最初的不匹配值,循环条件永远成立,因此会无限打印Please try again。

正确实现代码

写法一:在循环内重新获取输入更新变量

print('What would you like to purchase?')
buy = input('(Enter what you would like to purchase?)') 
while buy not in items_for_sale_today2: 
    print('Please try again')
    # 关键:循环内重新获取输入,更新buy的值
    buy = input('(Enter what you would like to purchase?)')
# 输入正确后,执行购买数量输入
purchase = input(f'How many {buy} would you like to purchase?')

写法二:用while True循环,符合条件时退出

print('What would you like to purchase?')
while True:
    buy = input('(Enter what you would like to purchase?)')
    if buy in items_for_sale_today2:
        # 输入正确,退出循环
        break
    print('Please try again')
purchase = input(f'How many {buy} would you like to purchase?')

注意点

原代码中的self.buy属于错误用法:如果这段代码不是在类的方法中,不需要使用self,直接用变量buy即可;如果是在类方法内,需要先将buy定义为实例属性(即self.buy = input(...)),但从代码结构看更偏向普通脚本,直接使用变量buy即可。另外用f-string格式化字符串比format()更简洁直观。

内容的提问来源于stack exchange,提问作者Kevin Koh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 08:57:09