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

VS中无法运行Python文件求助:执行无响应且提示Python未找到

问题解决

一、终端提示「Python was not found」的环境问题

这是VS Code调用的Python解释器路径错误或系统别名干扰导致的,按以下步骤修复:

  • 打开VS Code,按Ctrl+Shift+P调出命令面板,选择「Python: Select Interpreter」,选择本地已安装的Python版本路径(不要选c:/Users/Aditya Rai/Scripts/python.exe,这可能是未激活的虚拟环境路径)。
  • 关闭微软商店的Python别名:打开Windows设置→应用→应用执行别名,找到「Python.exe」和「Python3.exe」,关闭对应的开关,避免系统自动跳转到微软商店。
  • 验证系统PATH:打开cmd输入python --version,如果能正常显示版本号,说明PATH配置正确;如果不行,重新安装Python时勾选「Add Python to PATH」选项。

二、代码本身的逻辑bug(即使环境修复,原代码也无法正常运行)

原代码有两处致命逻辑错误,导致程序无交互就结束:

  1. valid_word函数的循环条件错误
    原代码中while "-" in word or " ": 里的" "是布尔值True,会导致循环无限执行。修正为:
    while "-" in word or " " in word:
    
  2. hangman函数的循环条件为空
    原代码while (): 是永远不执行的空循环,程序调用hangman()后直接结束,不会进入输入环节。修正为判断剩余未猜字母的数量:
    while len(word_letters) > 0:
    
  3. 其他优化点
    • 删掉重复的import string语句
    • 循环结束后添加胜利提示,提升体验

修正后的完整代码

import string
from words import words
import random

def valid_word(words):
    word = random.choice(words)
    while "-" in word or " " in word:
        word = random.choice(words)
    return word.upper()

def hangman():
    word = valid_word(words)
    word_letters = set(word)  # 单词中的字母集合
    alphabets = set(string.ascii_uppercase)
    used_letter = set()  # 用户已猜过的字母

    while len(word_letters) > 0:
        user_letter = input("Guess a letter: ").upper()
        if user_letter in alphabets - used_letter:
            used_letter.add(user_letter)
            if user_letter in word_letters:
                word_letters.remove(user_letter)
        elif user_letter in used_letter:
            print("You have already used that character. Please try again")
        else:
            print("Invalid Input. Kindly Try Again")
    
    # 循环结束说明所有字母都猜对了
    print(f"You won! The word was {word}")

hangman()

内容的提问来源于stack exchange,提问作者Aditya-47

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:50:40