【问题标题】:Is there a more elegant way of doing this? Exercise 19: Learn Python the Hard Way有没有更优雅的方式来做到这一点?练习 19:艰难地学习 Python
【发布时间】:2014-11-28 18:18:17
【问题描述】:

下面的代码按预期工作,但是有没有更优雅的方法来完成这个?

如果我不使用 int() 将 raw_input 更改为整数,它们会像字符串一样添加(即'10 + 10' = '1010')。

此外,我似乎无法将 int() 添加到与 raw_input 相同的行(即。

user_cheeses = raw_input("How many cheeses do you have?:\n> ").int()

),因为我得到了错误 - 'str' 对象没有属性 'int'。

def cheese_and_crackers(cheese_count, boxes_of_crackers):
    print "You have %r cheeses!" % cheese_count
    print "You have %r boxes of crackers!" % boxes_of_crackers
    print "Man that's enough for a party!"
    print "Get a blanket.\n"

print "We can put in inputs from you as well!:"
user_cheeses = raw_input("How many cheeses do you have?:\n> ")
user_cheeses_number = int(user_cheeses)

user_crackers = raw_input("How many boxes of crackers do you have?:\n >")
user_crackers_number = int(user_crackers)

cheese_and_crackers(user_cheeses, user_crackers)

print "You can also add even more cheeses and more crackers!:"
more_cheeses = raw_input("How many more cheeses do you now have?:\n> ")
more_cheeses_number = int(more_cheeses)

more_crackers = raw_input("How many more crackers do you now have?:\n> ")
more_crackers_number = int(more_crackers)

cheese_and_crackers(user_cheeses_number + more_cheeses_number, user_crackers_number + more_crackers_number)

【问题讨论】:

  • 随着代码的工作,这个问题可能会在Code review 上成为更多主题......

标签: python python-2.6


【解决方案1】:

int() 不是字符串方法。 int() 是一个(内置)函数,所以你需要将它应用到raw_input()result

user_cheeses = int(raw_input("How many cheeses do you have?:\n> "))

您可以通过将其应用于代码中的user_cheeses 来间接执行此操作:

user_cheeses_number = int(user_cheeses)

其中user_cheeesesraw_input() 返回的字符串。

【讨论】:

    猜你喜欢
    • 2015-05-01
    • 2013-04-06
    • 2011-12-04
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    相关资源
    最近更新 更多