ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

变量内容中的Python NameError

2019-10-13 00:59:41  阅读:191  来源: 互联网

标签:minecraft nameerror python


我一直在为Minecraft的Raspberry Pi版本制作一个mod,每次我在程序中输入一个命令时,都会遇到一个非常令人沮丧的错误.这是我的代码:

import minecraft.minecraft as minecraft
import minecraft.block as block
import time

mc = minecraft.Minecraft.create();

print('newBlock - Change ID of block to spawn')
print('blockType - Change subID of block to spawn')
print('pos1')
print('pos2')
print('fill - fill specified area')
print('clear - clear specified area')
print
while True:
comm=str(input('Command: '))
if comm=="newBlock":
    blockId = int(input('Enter Block ID: '))
    mc.postToChat('Block set to ID: ' + str(blockId))
if comm=="blockType":
    blockData = int(input('Enter Block Type: '))
if comm=="pos1":
    position1 = mc.player.getPos()
    mc.postToChat('Set Position 1 as: x' + str(position1.x) + ' y' + str(position1.y) + ' z' + str(position1.z))
if comm=="pos2":
    position2 = mc.player.getPos()
    mc.postToChat('Set Position 2 as: x' + str(position2.x) + ' y' + str(position2.y) + ' z' + str(position2.z))
if comm=="fill":
    mc.setBlocks(position1.x, position1.y, position1.z, position2.x, position2.y, position2.z, blockId, blockType)
    mc.postToChat('Filled specified area with: ' + str(blockId))
if comm=="clear":
    mc.setBlocks(position1.x, position1.y, position1.z, position2.x, position2.y, position2.z, 0)
    mc.postToChat('Cleared specified area')

每次用户通过变量“ comm”输入输入时,程序都会显示以下错误消息:

Traceback (most recent call last):
    File "WorldEditPi.py", line 15, in <module>
        comm=str(input('Command: '))
    File "<string>", line 1, in <module>
NameError: name 'newBlock(or what ever the user entered into 'comm')' is not defined

真正令人困惑的是,它甚至没有在谈论变量“ newBlock”不是变量,而是变量“ comm”的内容.所有命令都会发生这种情况,而不仅仅是“ newBlock”.

解决方法:

您在需要使用raw_input的地方使用输入.输入评估它传递的字符串. raw_input给您一个字符串,这是您想要的.

请注意,这仅适用于Python2.在Python 3中,raw_input不再可用,并且输入等效于Python 2的raw_input.在Python 2中,输入等效于eval(raw_input)

标签:minecraft,nameerror,python
来源: https://codeday.me/bug/20191013/1904308.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有