def main():
handling_cost = 5
cost_per_item = 4.25
prompt = "Enter number (5 - 20): "
get_number(prompt)
int(prompt)
get_cost(prompt, cost_per_item, handling_cost)
display_details(prompt, cost_per_item)
def get_number(prompt):
return int(input(prompt))
def get_cost(number, cost_per_unit, handling_cost):
total_cost = number * cost_per_unit + handling_cost
return round(total_cost)
def display_details(items, cost_each, handling_cost, final_price):
print("Items: ", items, " Cost per item: $", cost_each, sep="")
print("Handling cost: $", handling_cost, sep="")
print("Total $", final_price, sep="")
main()
你好,
我在将字符串数字转换为整数时遇到问题。
在代码的第 6 行,我尝试将提示转换为整数,以便可以将其转换为整数,然后在 get_cost 函数中相乘。但我收到如下所示的错误消息:
我该如何解决这个问题?
答案 0 :(得分:1)
您传递的是 int() 提示而不是用户输入的值。只需去掉 int(prompt) 并将第 5 行更改为 user_val = get_number(prompt)
...
user_val = get_number(prompt)
get_cost(user_val, cost_per_item, handling_cost)
display_details(user_val, cost_per_item)
答案 1 :(得分:1)
我想你可能有点混淆了(或者可能是我没有像你一样理解)但让我们把事情说清楚:
在第 4 行你有:
prompt = "Enter number (5 - 20): "
所以 prompt
是用户将读取然后输入值的字符串。
在第 5 行调用读取值并将其转换为 int 的函数:
get_number(prompt)
问题是您没有将此函数返回的值分配给任何变量,因此您丢失了读取值。
在第 6 行,您试图将 prompt
转换为 int,但它是一个字符串(它包含在第 4 行分配给它的字符串)
因此您应该做的是在第 5 行声明一个变量并为其分配 get_number`()
调用,例如 value = get_number(prompt)
。
然后你应该有类似的东西:
prompt = "Enter number (5 - 20): "
value = get_number(prompt)
请记住,在第 7 行和第 8 行,您将 prompt
作为参数发送,但实际上它应该是您的新 value
变量。
get_cost(value, cost_per_item, handling_cost)
display_details(value, cost_per_item)