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

Python循环与数组功能异常排查请求

代码错误排查与修正

存在的问题

  • 循环逻辑错误:while(input_request == 'y' or 'Y') 逻辑永远为真,因为'Y'本身是布尔真值,无论input_request是什么,循环都会一直执行;且初始值input_request = 'true'不符合循环条件预期,应该设为'y'来启动循环。
  • 数组判断逻辑错误:if(input_inquriy == blocked_sites ) 是将输入的字符串与整个列表直接比较,永远不会匹配,应该用in关键字判断输入是否在黑名单列表中。
  • 变量拼写错误:多处变量拼写不一致,比如input_inquriy(应为input_inquiry)、input_reqest(应为input_request),导致变量引用混乱。
  • 逻辑分支错误:原代码中"访问允许"的逻辑放在了while循环的else分支,这会导致只有循环结束时才会触发,而非输入合法网站时触发。

修正后的代码

import sys

# 黑名单网站
blocked_sites = ["youtube.com", 'www.youtube.com', 'www.facebook.com', 'facebook.com']
input_request = 'y'  # 初始值设为y,进入循环

while input_request.lower() == 'y':
    # 用户输入要访问的网站
    input_inquiry = input('请输入你想要访问的网站: ')

    # 网站过滤判断
    if input_inquiry in blocked_sites:  # 判断是否在黑名单内
        print('网站访问被禁止')
    else:
        print('网站访问已允许')
    
    # 询问是否继续提交请求
    input_request = input('是否要继续提交网站访问请求(Y/N): ')
    if input_request.lower() != 'y':
        print('祝你下午愉快!')
        sys.exit()

修正说明

  1. 修正循环条件:使用input_request.lower() == 'y'统一判断大小写,确保输入Y或y都能识别,初始值设为'y'保证首次进入循环。
  2. 修正列表判断:用in关键字检查输入的网站是否在黑名单列表中,这是判断元素是否在序列中的正确方式。
  3. 统一变量拼写:修正所有拼写错误的变量名,保证变量引用一致。
  4. 调整逻辑分支:将"访问允许"的逻辑放在if的else分支,确保每次输入后都能即时反馈结果;将是否继续的判断统一放在每次请求处理后,无论是否允许访问都能询问用户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:55:17