如何修复Python代码中出现的“code unreachable”报错问题
code unreachable报错修复方法 代码存在3处核心写法问题,直接触发报错和逻辑失效:
- 条件判断写法错误:
if 'Q1 = yes'是直接判断字符串常量'Q1 = yes'的布尔值,Python中非空字符串永远判定为真,因此后续elif分支永远不会被执行,编辑器会直接标记elif下的代码为不可达代码,也就是你看到的报错。正确判断逻辑应该是读取用户输入存入的Q1变量,对比变量值是否等于目标字符串。 - 缩进不符合Python语法要求:同属if代码块的三行代码缩进量不一致,第一行
Q2 = input(...)仅缩进1个空格,后两行缩进4个空格,运行时会直接触发缩进错误。 - 变量未定义:
print(bye)中的bye既不是提前定义的变量,也没有加引号标记为字符串,运行到这行时会触发名称错误;结合你代码里输入no就退出的设计,直接给bye加字符串引号即可。
修复后完整可运行代码
import random Q1 = input('''would you like to put your own words instead of heads or tails if so say yes if not say no, if you said no i will exit the code?''').strip() if Q1 == 'yes': Q2 = input('''what word(s) or numbers(s) would you like to use in your random word or number picker?(also no spaces in between numbers.)''') y = random.choice(list(Q2)) print(y) elif Q1 == 'no': print("bye")
可选优化:当前代码中
list(Q2)会把用户输入的内容拆分为单个字符随机抽取,如果需要从用户输入的多个完整词组/数字中随机选择,可以要求用户输入时用逗号分隔不同选项,把随机选择行替换为y = random.choice(Q2.split(','))即可。
内容的提问来源于stack exchange,提问作者Aaryan v.
相关产品推荐
相关产品推荐

