Python 3.x 为什么可以';我不能把带数字的字符串转换成整数吗?

Python 3.x 为什么可以';我不能把带数字的字符串转换成整数吗?,python-3.x,Python 3.x,你好 我无法将字符串数字转换为整数 在代码的第6行,我尝试将提示转换为整数,以便将其转换为整数,然后在get_cost函数中相乘。但我得到如下所示的错误消息: 我该如何解决这个问题 您正在传递int()提示,而不是用户输入的值。只需去掉int(提示符)并将第5行更改为user_val=get_number(提示符) 我想你可能把事情弄糊涂了(或者可能是我没有像你那样理解),但让我们把事情弄清楚: 在第4行,您有: ... user_val = get_number(prompt) get_cos

你好

我无法将字符串数字转换为整数

在代码的第6行,我尝试将提示转换为整数,以便将其转换为整数,然后在get_cost函数中相乘。但我得到如下所示的错误消息:

我该如何解决这个问题

您正在传递int()提示,而不是用户输入的值。只需去掉int(提示符)并将第5行更改为user_val=get_number(提示符)


我想你可能把事情弄糊涂了(或者可能是我没有像你那样理解),但让我们把事情弄清楚:

在第4行,您有:

...
user_val = get_number(prompt)
get_cost(user_val, cost_per_item, handling_cost)
display_details(user_val, cost_per_item)
因此,
prompt
是用户将读取然后输入值的字符串

在第5行,调用读取值并将其强制转换为int的函数:

prompt = "Enter number (5 - 20): "
问题是您没有将此函数返回的值赋给任何变量,因此您将丢失读取值

在第6行,您试图将
提示符
转换为int,但它是一个字符串(它包含在第4行分配给它的字符串)

因此,您应该做的是在第5行声明一个变量,并为其分配
get\u number`()
调用,比如
value=get\u number(prompt)

然后您应该有如下内容:

get_number(prompt) 
请记住,在第7行和第8行,您将作为参数发送
提示符
,但实际上它应该是新的
变量

prompt = "Enter number (5 - 20): "
value = get_number(prompt)

非常感谢,我现在知道该做什么了。还有一个问题,为什么在字符串前面加int不起作用?比如,如果你选择int(“33”),它会将字符串数字转换成整数,对吗?为什么在这种情况下不起作用?@Kris,因为你给
int
输入了错误的字符串。啊,我明白了。还有一个问题,为什么在字符串前面加int不起作用?比如,如果你选择int(“33”),它会将字符串数字转换成整数,对吗?为什么在这种情况下不起作用?你的假设是正确的!然而,您在第6行所做的是int(“输入数字(5-20):”),它绝对不能转换为整数。如果你发现答案是有用的,请考虑接受它!
prompt = "Enter number (5 - 20): "
value = get_number(prompt)
get_cost(value, cost_per_item, handling_cost)
display_details(value, cost_per_item)