繁体   English   中英

为什么我在运行此代码时会收到错误代码?

[英]Why am I getting an error code when I run this code?

为什么我在运行此代码时会收到以下错误代码:

builtins.NameError:未定义名称“字符串”

def explore_string():
    get_input()
    explore_chars(string)
    sum_digits(string)

def explore_chars(string):
    print("Original: ",string)
    print("Length:   ",len(string),"chars")
    print("2nd char: ",string[1])
    print("2nd last: ",string[2])
    print("Switched: ",string[-3:]+string[3:-3]+string[0:3])

def sum_digits(string):
    dig_sum=0
    l=['1','2','3','4','5','6','7','8','9']
    for i in string:
        if i in l:
            dig_sum+=int(i)
    print("Digit sum: ",dig_sum)
    
def get_input():
    string=input("Enter 10 or more chars ending with a period: \n-> ")
    while(len(string)<10 or string[len(string)-1]!='.'):
        string=input("-> Error! Try again: ")
    return string 

explore_string()

您需要像这样更改您的explore_string

def explore_string(): 
    string = get_input()
    explore_chars(string)
    sum_digits(string)

get_input()的结果值应该存储在一个变量string

Imentu 的答案似乎是正确的解决方案。 但是,我想添加一些小技巧,可以帮助您自己解决此类问题。 因为你将来可能会遇到更多次(至少我遇到过)。

错误代码通常包含有关您所面临问题的大量信息。 在您的情况下, xxx is not defined意味着您正在引用 Python 尚不知道的对象xxx (未定义)。 每当您遇到这种情况时,您应该检查两件主要事情

  • 我忘记分配了吗? (这里就是这种情况)
  • 我打错字了吗? (例如,如果您输入strng = get_input()

如果您将此与问题以“字符串”一词和错误给出的近似行号为中心的事实结合起来,那么您应该能够找到问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM