我的号码不能累计我的算法而且我不知道为什么

时间:2017-09-20 03:46:48

标签: python

print ("Perimeter for Total House Floor Remodeling Calculator")   
print(" ")   
width1 = input ("Please enter the width of the floor: ")   
length1 = input ("Please enter the length of the floor: ")   
print (" ")   
length = length1 * 2   
width = width1 * 2   
perimeter = (length + width)   
print ("The perimeter of the floor is: ",perimeter)    

一旦我输入了我的号码,我就说我输入5为宽度,5为长度,我的周长将为5555而不是20。我是编码的新手,所以任何帮助都非常感谢。

4 个答案:

答案 0 :(得分:3)

input() function为您提供字符串,您需要在进行任何计算之前将它们转换为整数。尝试:

width1 = int(input("Please enter the width of the floor: "))   
length1 = int(input("Please enter the length of the floor: ")) 

Python可以在字符串之间进行乘法运算,重复它们。 IE:'5'*3为您提供'555',因为它是一个字符串。虽然5*3给出了15,因为它是一个整数。

答案 1 :(得分:1)

您正在从input()捕获数据,这是一个字符串。您需要将其强制转换为数字。当你有一个名为“12”的字符串并且你运行“12”* 2时它将输出“1212”。

raw_output = input("Enter a number: ")
print("Type of raw_output: {0}".format(type(raw_output))
actual_integer = int(raw_output)
print("Type of actual_integer: {0}".format(type(actual_integer))

来自帮助功能

Help on built-in function input in module builtins:

input(...)
    input([prompt]) -> string

Read a string from standard input.  The trailing newline is stripped.
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
On Unix, GNU readline is used if enabled.  The prompt string, if given,
is printed without a trailing newline before reading.

答案 2 :(得分:0)

由于数据类型不需要在Python中明确提及,因此您必须输入强制转换(强制转换为其他数据类型)您的输入才能将它们视为整数。

width1 = int(input("Please enter the width of the floor: "))
length1 = int(input("Please enter the length of the floor: ")) 

这应该有效!

答案 3 :(得分:0)

我不确定您使用的是哪个版本的python,但是我在计算机上使用的是2.7.13,您的代码运行得很好。检查您的版本,并告诉我们。