将.txt读入定义

2024-10-01 19:18:42 发布

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

我试图从一个简单的文本文件中读取如下:

11
eggs
1.17
milk
3.54
bread
1.50
coffee
3.57
sugar
1.07
flour
1.37
apple
.33
cheese
4.43
orange
.37
bananas
.53
potato
.19

我要做的是请求输入一个文件名,比如“milk”,而不是打印它的价格。我在试着用字典。在

这是我的代码:

^{pr2}$

预期输出

这个程序会记录你的购物清单。 使用“退出”退出。 输入项目:鸡蛋 你目前的总数是1.17美元

输入项目:面包 你目前的总数是3美元

输入项目:糖 你目前的总数是4.07美元

输入项目:退出 你最后的总数是4.07美元


Tags: 项目apple文件名sugareggspotatocoffee文本文件
2条回答

两样东西:鸡蛋+面包==1.17+1.50!=3.00。。。在

其次,您可以(对于这样小的文本文件)编写一个例程,通过交替使用奇偶行来预先构建字典,例如键:值对(或者将type()作为str或float进行测试,然后通过这种方式进行计算)。重复遍历文本文件的开销比引用内存中存储的变量要高。在

此外,这种方法使第一步的工作变得更简单,因此您可以集中精力在第二步上,并确保您背后的代码是有效的,并且是有意义的。在

给你。你已经有了一个很好的代码。
看看这些区别:

-您正在重写groceries
-您没有从字典中读取值
-在python<;3x中,应该使用原始输入而不是输入。如果您在py3k输入正常
-在py2.x中打印也不需要括号,而在py3k中则需要括号
-也许唯一奇怪的是,在这里的作业是使用%打印。这意味着%s将被最后一个%符号后的字符串替换
-要小心,因为食品的成本实际上是字符串,所以不能用它们进行数学运算。首先你应该把它们转换成浮点数。在

def main():
    key = ''
    infile = open('shoppinglist.txt', 'r')

    count = infile.readline()
    groceries = {}

    print('This program keeps a running total of your shopping list.')
    print('Use \'EXIT\' to exit.')

    grocery = raw_input('Enter an item: ')

    for line in infile:
        line = line.strip()     #take out newlines codes.
        if key == '':
            key = line
        else:
            groceries[key] = line     #maybe use here float(line) instead
            key = ''

    print 'Your current total is %s $' % groceries[grocery]

main()

对于多个输入使用(未测试,py3k代码,请记住之前将成本转换为浮动):

^{pr2}$

相关问题 更多 >

    热门问题