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

Python中如何使用while循环对两个输入货币字符串做合法性校验?

代码问题修正

原代码存在的错误点

  • 合法货币列表的定义语法错误,既没有赋值给变量,也误用了list关键字的写法
  • while循环的判断条件语法错误:Python中判断元素是否属于序列使用in关键字,不存在!= from的写法,同时逻辑判断的表达式结构错误
  • print语句没有加括号,不符合Python3的语法规范
  • break语句放在了while循环外部,完全不生效,且当前场景不需要额外添加break,满足循环终止条件会自动退出循环
  • 冗余写法:input()本身返回字符串,不需要额外套str()做类型转换

修正后可运行代码

# 先定义合法货币列表
valid_currencies = ["usd", "eur", "cad", "inr", "jpy", "vnd", "krw", "btc"]

# 首次输入,加lower()兼容大小写输入
num1 = input("支持兑换的货币: usd, eur, cad, inr, jpy, vnd, krw, btc。请输入当前持有货币: ").lower()
num2 = input("请输入目标兑换货币: ").lower()
num1amount = int(input("请输入兑换金额: "))

# 只要任意一个货币不合法就循环重新输入
while num1 not in valid_currencies or num2 not in valid_currencies:
    print("输入的货币不合法: ")
    num1 = input("支持兑换的货币: usd, eur, cad, inr, jpy, vnd, krw, btc。请输入当前持有货币: ").lower()
    num2 = input("请输入目标兑换货币: ").lower()
    num1amount = int(input("请输入兑换金额: "))

# 后续兑换逻辑可继续写在这里

可选优化

  • 可以单独拆分输入逻辑为函数,避免重复写多行输入代码
  • 可以加异常捕获,避免用户输入非数字的金额时程序报错

内容的提问来源于stack exchange,提问作者17oreo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:18:01