Python代码出现NameError报错,函数内变量未定义问题求助
问题解决:Python变量未定义报错
代码中的错误点:
- 变量名拼写不一致:函数内定义的是
randomrd_drawn_int,但判断条件里用的是card_drawn_int,导致判断时变量未定义。 - 判断逻辑错误:用
==和列表比较数值是错误的,应该用in关键字判断数值是否在目标列表中。 - 直接访问函数局部变量:
card_drawn是draw_card()内部的局部变量,外部无法直接调用,必须先执行函数并获取返回值。 - 缺少
random模块导入:使用random.randint()前需要先导入模块。 - 无默认分支:若出现意外数值(虽然当前
randint(1,20)不会触发,但代码规范上需补充),会导致card_drawn未定义。
修正后的代码:
import random def draw_card(): card_drawn_int = random.randint(1,20) if card_drawn_int in [1,2,3,4,5,6,7,8,9,10,11,12]: card_drawn = ['Mechanized Infantry'] elif card_drawn_int in [13,14,15,16,17]: card_drawn = ['STRV 122'] elif card_drawn_int in [18,19,20]: card_drawn = ['JAS 37'] else: card_drawn = ['Unknown Card'] # 默认分支,防止意外情况 return card_drawn # 调用函数并接收返回值后打印 result = draw_card() print(result)
内容的提问来源于stack exchange,提问作者James Conrad Cole
相关产品推荐
相关产品推荐

