py 变量已经定义过了,而如果code[0:2]是go的话就重新定义,下面要使用就跟我说没定义过

我的代码:


# imports
from __future__ import print_function, unicode_literals
import ctypes
import sys
import subprocess
import sys
import os
from time import sleep
import getpass
import turtle as t


# Variables
C = 'C:/Users/'
D = '/Desktop'
cdplace = C + getpass.getuser() + D
# main code

# defs


def IC(code):

    if code[0:2] == 'go':  # 这段去掉下面改成 if 就没事了
        cdplace = code[3:]

    # New
    elif code[0:6] == 'folder':
        os.system('cd ' + cdplace)
        os.system('md ' + code[6:])
        splitedcmd = []

    # Unknow Code

    elif code == '':
        next
    else:
        print("Unknow Code '" + code + "' :</")


while True:
    if IC(input()) == 0:
        break

"cdplace" 没定义过
"cdplace" is not defined

请问怎么解决

使用global

 
# imports
from __future__ import print_function, unicode_literals
import ctypes
import sys
import subprocess
import sys
import os
from time import sleep
import getpass
import turtle as t
 
# Variables
C = 'C:/Users/'
D = '/Desktop'
cdplace = C + getpass.getuser() + D
# main code
# defs
 
def IC(code):
    global cdplace
    if code[0:2] == 'go':  # 这段去掉下面改成 if 就没事了
        cdplace = code[3:]
    # New
    elif code[0:6] == 'folder':
        os.system('cd ' + cdplace)
        os.system('md ' + code[6:])
        splitedcmd = []
    # Unknow Code
    elif code == '':
        next
    else:
        print("Unknow Code '" + code + "' :</")
 
while True:
    if IC(input()) == 0:
        break
 

也可以试试先定义cdplace为空字符串(cdpalce='')