首页 > 解决方案 > 关于def函数的一个简单问题(如果单词以“pre”开头,则返回“valid”)

问题描述

我需要编写一个函数来要求人们输入一个单词,如果它以“pre”开头返回“valid”,否则打印“not valid”。

def word_fun(word):
    word = input("enter a word: ").lower()
    if word.startswith("pre") and word.isalpha:
        print("valid")
    else:
        print("not valid")
word_fun(word)

我的代码有什么问题?

标签: pythonpython-3.x

解决方案


该代码产生错误NameError: name 'word' is not defined。这意味着您在word尚未定义的范围内使用该变量。这发生在您调用函数的最后一行。

您可以通过从函数中删除参数来解决此问题,因为它不是必需的。从定义和调用中删除它。

def word_fun():
    word = input("enter a word: ").lower()
    if word.startswith("pre") and word.isalpha():
        print("valid")
    else:
        print("not valid")

word_fun()

注意:我也修复word.isalpha()了 chepner 在对您的问题的评论中提到的问题。


推荐阅读