Python清单:.lower()属性错误 [英] Python Lists: .lower() attribute error

查看:91
本文介绍了Python清单:.lower()属性错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to create a program on python to do with manipulating lists/arrays. I am having trouble with an error:

lowercase = names.lower
AttributeError:"list"对象没有属性"lower"

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

我真的需要一些帮助来解决此问题!

I really need some help to fix this!

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()

推荐答案

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

Like the error message says, you can't use .lower() on lists, only on strings. That means you'll have to iterate over the list and use .lower() on every list item:

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

这篇关于Python清单:.lower()属性错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆