1
回答
python中global name的问题如何解决
【腾讯云】校园拼团福利,1核2G服务器10元/月!>>>   
def break_words(stuff):
    """This function will break up words for us."""
    words = stuff.split(' ')
    return words

def sort_words(stuff):
    """sorts the words."""
    return sorted(words)

def print_first_word(words):
    """Print the first word after popping it off"""
    word = words.pop(0)
    print word

def print_last_word(words):
    """"Print the last word after popping it off."""
    word = words.pop(-1)
    print word

def sort_sentence(sentence):
    """Takes in a full sentence and returns the sorted words."""
    words = break_words(sentence)
    return sort_words(words)

def print_first_and_last(sentence):
    """Prints the first and last words of the sentence."""
    words = break_words(sentence)
    print_first_word(words)
    print_last_word(words)

def print_first_and_last_sorted(sentence):
    """Sorts the words then prints the first and last one."""
    words = sort_sentence(sentence)
    print_first_word(words)
    print_last_word(words)
    
>>> import ex25
>>> sentence = "All good things come to those who wait."
>>> words = ex25.break_words(sentence)
>>> words
['All', 'good', 'things', 'come', 'to', 'those', 'who', 'wait.']
>>> sorted_words
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'sorted_words' is not defined
>>> sorted_words = ex25.sort_words(words)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "ex25.py", line 8, in sort_words
    return sorted(words)
NameError: global name 'words' is not defined

为什么会出现words不是全局变量的情况,如何改进

举报
Mr_Deng
发帖于1年前 1回/128阅
顶部