Python attribu()下表:

2024-10-04 05:27:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python上创建一个程序来处理列表/数组。我遇到了一个错误:

lowercase = names.lower
AttributeError: 'list' object has no attribute 'lower'

我真的需要一些帮助来解决这个问题!在

names = [] #Declares an array
print("Type menu(), to begin")
def menu():

    print("----------------------------MENU-----------------------------")
    print("Type: main() for core functions")
    print("Type: delete() to delete a name")
    print("Type: save() to save the code")
    print("Type: load() to load the saved array")
    print("Type: lower() to make all items in the list lower case")
    print("-------------------------------------------------------------")

def main():
    times = int(input("How many names do you want in the array? ")) #Asks the user how many names they want in the array
for i in range(times):
    names.append(input("Enter a name ")) #Creates a for loop that runs for the amount of times the user requested, it asks the user to enter the names
choice = input("Would you like the array printed backwards? ") #asks the user whether they want the array backwards
if choice == "Yes":
    names.reverse() #If the user says yes, the array is reversed then printed backwards
    print(names)
else:
    print(names) #Otherwise, the array is printed normally
number = int(input("Which item would you like to print out? "))
number = number - 1
print(names[number])
start = int(input("What is the first position of the range of items to print out? "))
start = start - 1
end = int(input("What is the last position of the range of items to print out? "))
print(names[start:end])

def delete():
    takeAway = input("Which name would you like to remove? ")
    names.remove(takeAway)
    print(names)

def save():
    saving1 = open("Save.txt", 'w')
    ifsave = input("Would you like to save the array? ")
    if ifsave == "Yes":
        for name in names:
                saving1.write("%s\n" % name)
                saving1.close
    else:
        menu()
def load():
    loadquestion = input("Would you like to load a list of names? ")
    if loadquestion == "Yes":
        saving1 = open('Save.txt', 'r')
        print(saving1.read())
        saving1.close()
    else:
        menu()
def lower():
    lowerq = input("Would you like to make the array lowercase? ")
    if lowerq == "Yes":
        lowercase = names.lower
        print(lowercase)
    else:
        menu()

Tags: ofthetoyouforinputnamesdef
2条回答

变量names是一个列表。不能对列表使用.lower()方法。在

pp提供了解决方案:

lowercase = [x.lower() for x in names]

虽然与上一个示例不完全相同,但这可能会更好地理解您,并且有效地获得相同的结果:

^{pr2}$

可满足您需求的替代解决方案:

print (str(names).lower())

就像错误消息所说的,不能在列表中使用.lower(),只能在字符串上使用。这意味着您必须遍历该列表并对每个列表项使用.lower()

lowercase = [x.lower() for x in names]

相关问题 更多 >