Python 函数返回 1 个数字的 12 个实例而不是我的输入 12

Python Function returing 12 instances of 1 number rather timesing my input my 12

所以我正在尝试创建一个函数,允许我将用户输入乘以 12。但是,例如,不是做 12 x 4 = 64,而是给了我 4 个 12',例如444444444444

我已经尝试过单独使用 return 函数并尝试创建一个变量。

我试过的选项是:

def cube(num):
    print("answer =")
    return num*12

num1 = input("Enter a number to times by 12: ")
print(cube(num1))

和:

def cube(num):
    print("answer =")
    answer = num*12
    return answer

num1 = input("Enter a number to times by 12: ")
print(cube(num1))

我希望如果输入数字是 4 我会得到 64 但输出显示为 444444444444

当你接受输入时,你首先得到它作为一个字符串。当您乘以一个字符串时,您会得到该字符串的重复,这就是为什么您得到十二个 4 的原因。

您需要先将该输入转换为数字,然后再将其相乘。

尝试:

cube(int(num1))

相反。

函数 input returns 一个字符串,不是一个数字。将一个字符串乘以一个数字会重复该字符串多次。

您需要尽早将该字符串转换为数字:

num1 = int(input("Enter a number to times by 12: "))
print(cube(num1))

input("Enter a number to times by 12: ") 将输入作为字符串。 Python 字符串允许您将它们乘以数字。结果是一个重复次数的字符串(如您所见,444444444444)。如果你想把输入当作数字,你应该把它转换成一个整数:

num1 = int(input("Enter a number to times by 12: "))

您需要将输入值转换为 floatintinput 总是 returns 一个字符串。

num1 = float(input('Enter a number to multiply by 12: '))

如果您输入的内容无法转换为数字,这将导致 ValueError

如果您需要不断询问有效输入,我总是倾向于创建一个函数来为我执行此操作:

def float_input(prompt=''):
    while True:
        try:
            return float(input(prompt))
        except ValueError:
            print('Invalid Input')

现在将代码中的 input 替换为 float_input

这是因为输入是作为字符串读取的。如果您创建字符串 s = 'foo' 并执行类似 s2 = s*4 的操作,则 s2 将等于 foofoofoofoo。要解决您的问题,请将输入转换为 int。所以answer = int(num)*12)