不区分大小写时转换为任意数量的输入

2024-06-17 08:27:33 发布

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

所以给我一个菜单和食物等级,我必须创建一个数据结构,然后生成一个getInfo函数和findCheapest函数

getInfo(item)获取1个项目并打印出其价格和评级。
findCheapest(item1,item2)接收2个项目,检查项目是否在菜单中,并给出最便宜的。我已经写了这么多了,这是我努力奋斗的地方

如何使两个函数的所有输入都不区分大小写,但仍然返回格式正确的单词。例如:

getInfo(“tEa”)应该返回: 茶叶-价格:7。等级:4

我得到你可以做字符串比较,并将其转换为小写,但你不能这样做,在一个设置的原因,那么它将打印错误,你怎么做,但仍然比较每个值正确

第二部分我正在努力寻找findCheapest函数如何使它能够接受任意数量的值,并且在不太改变数据结构的情况下仍然打印最便宜的值

所以我实现了一个formatText(item)函数,它可以转换成正确的格式

代码如下:

menu= {"Tea", "Coffee", "Cookie", "Chips"}

price={

    "Tea": 7,
    "Coffee": 5,
    "Cookie": 2,
    "Chips": 3
}

rating= {
    "Tea": 4,
    "Coffee": 4.5,
    "Cookie":5,
    "Chips": 2
}

def getInfo(item):
    if item in menu:
        print item + "- price: %s." % price[item] + " Ratings %s" %rating[item]
    else:   
        print "This item was not found: " + item

def findCheapest (item1,item2):
    if item1 in menue and item2 in menue:
        if (price[item1] < price[item2]):
            print item2+ " is the cheapest"
        elif (price[item1] > price[item2]):
            print item1 +" is the cheapest" 
    else:
        print "An item was not found." 

getInfo("tEa")
getInfo("coFfeE")
findCheapest("tEa", "coFfeE")

Tags: 项目函数ifcookieitempricecoffeeprint
3条回答

使用@Aswin Murugesh solution将所有内容设置为大写或小写

在当前设置中,可以使用capitalize()

构造下面的字符串(第一个字符上面使用upper()+其余字符下面使用lower()),使第一个字符大写

getInfo("tEa".capitalize())
getInfo("coFfeE".capitalize())
findCheapest("tEa".capitalize(), "coFfeE".capitalize())

将其应用于输入值或作为方法的第一步

不管用户输入什么,使用大写函数。获取价格和评级。大写返回值,每个单词的第一个字母大写,其他字母小写

list_of_items = [x.capitalize() for x in raw_input.split()]
find_cheapest(list_of_items)

def find_cheapest(list_of_items):
    cheapest_price = 12345
    cheapest_item = ""
    for item in list_of_items:
        # Get the price of the item and check with the least price
        item_price = price.get(item,None)
        if item_price and item_price < cheapest_price:
            cheapest_price = item_price
            cheapest_item = item
    if cheapest_item:
        return cheapest_item + "is the cheapest"
    else:
        return "No Items were found"
    my_menu= ["Tea", "Coffee", "Cookie", "Chips"]

    price={

        "Tea": 7,
        "Coffee": 5,
        "Cookie": 2,
        "Chips": 3
    }

    rating= {
        "Tea": 4,
        "Coffee": 4.5,
        "Cookie":5,
        "Chips": 2
    }

    def isItemInMenue(item="", menu=[]):
        for x in menu:
            if x.lower() == item.lower():
                return x
        return ""

    def getInfo(item):
        item_ = isItemInMenue(item, my_menu)
        if item_:
            print item_ + " - price: %s." % price[item_], "Ratings %s" % rating[item_]
        else:   
            print "This item was not found: " + item_

    def findCheapest (item1, item2):
        item1_ = isItemInMenue(item1, my_menu)
        item2_ = isItemInMenue(item2, my_menu)
        if item1_ and item2_:
            if (price[item1_]  price[item2_]):
                print item1_ + " is the cheapest" 
        else:
            print "An item was not found." 

    getInfo("tEa")
    getInfo("coFfeE")
    findCheapest("tEa", "coFfeE")

相关问题 更多 >