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

01字符串验证程序逻辑错误求助:输出不符合预期问题排查

二进制字符串验证程序修正

需求说明

需要编写程序处理仅由0和1组成的字符串,满足以下规则:

  • 当且仅当字符串以1开头、第二个字符为0、最后一个字符为1时,输出string is valid
  • 字符串长度不限,但需满足上述三个条件;若包含非0/1字符或不满足规则,输出Invalid Input

现有代码问题

你当前的代码仅判断字符串等于"10"时输出有效,完全不符合需求:

x = str(input('Enter numbers: '))

if x == '10':
   print('string is valid')

else:
   print('Invalid Input')

比如输入"101"本应有效却被判定无效,输入"10"不满足最后一个字符为1却被判定有效。

修正后的代码

x = input('Enter numbers: ')

# 检查输入是否仅包含0和1
if not all(char in {'0', '1'} for char in x):
    print('Invalid Input')
else:
    # 验证长度足够且满足三个核心条件
    if len(x) >= 3 and x[0] == '1' and x[1] == '0' and x[-1] == '1':
        print('string is valid')
    else:
        print('Invalid Input')

代码说明

  1. 非法字符校验:用all(char in {'0', '1'} for char in x)遍历每个字符,确保输入只有0和1
  2. 长度与规则校验:
    • 长度需≥3:因为要存在第二个字符,且最后一个字符为1(长度为2时第二个字符是0,无法满足最后一个字符为1)
    • 依次验证开头为1、第二个字符为0、最后一个字符为1三个核心条件

测试案例

  • 输入101 → 输出string is valid
  • 输入10 → 输出Invalid Input
  • 输入10001 → 输出string is valid
  • 输入a101 → 输出Invalid Input
  • 输入001 → 输出Invalid Input

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:25:19