Python3代码异常:输入任意内容均跳转至Twitter,求问题排查
问题分析与解决
核心问题
未捕获用户输入
你调用了input()但没有将输入内容保存到变量中,后续判断完全没用到用户的输入值。判断逻辑错误
代码里的if (T)是判断变量T的布尔值,而T是一个非空字符串,在Python中所有非空字符串都会被判定为True,所以第一个if分支永远会触发,直接打开Twitter,后面的elif根本不会执行。
修正后的代码
import webbrowser # 用字典建立选项与网址的映射,更简洁易维护 site_map = { 'T': "www.twitter.com", 'R': "www.reddit.com", 'Y': "www.youtube.com" } while True: print('Enter T for Twitter') print('Enter R for Reddit') print('Enter Y for Youtube') # 捕获用户输入,去除前后空格并转大写,兼容小写输入 user_input = input().strip().upper() # 检查输入是否为有效选项 if user_input in site_map: webbrowser.open_new(site_map[user_input]) break else: print('Invalid selection, try again.') continue
关键修正点
- 新增
user_input变量存储用户输入,确保判断逻辑基于用户的选择。 - 使用字典替代单独变量,让选项与网址的对应关系更清晰,也方便后续扩展。
- 加入
strip()和upper()处理输入,避免用户输入空格或小写字母导致的识别失败。
内容的提问来源于stack exchange,提问作者DivineNoob
相关产品推荐
相关产品推荐

