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(即使环境修复,原代码也无法正常运行)
原代码有两处致命逻辑错误,导致程序无交互就结束:
valid_word函数的循环条件错误
原代码中while "-" in word or " ":里的" "是布尔值True,会导致循环无限执行。修正为:while "-" in word or " " in word:hangman函数的循环条件为空
原代码while ():是永远不执行的空循环,程序调用hangman()后直接结束,不会进入输入环节。修正为判断剩余未猜字母的数量:while len(word_letters) > 0:- 其他优化点
- 删掉重复的
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
相关产品推荐
相关产品推荐

