Types 类型转换在Python中是如何工作的?

Types 类型转换在Python中是如何工作的?,types,casting,Types,Casting,我参加了一次工作面试,面试官问我“python如何决定将“a”和“1”中的哪一个转换为int类型?”。那么答案是什么呢?python如何知道哪个字符串能够转换为整数?它依赖于编程语言吗?Java对此有不同的规则吗?在python中,我们基本上使用3种方法。int()、float()和str()。如果必须将字符串类型转换为整数值,则将使用int()。 将其视为一个适当的参数函数。现在,如果您尝试传递一些参数,它将查找严格的参数,如果没有找到,您将得到一个错误。 举个例子。 在python中传递in

我参加了一次工作面试,面试官问我“python如何决定将“a”和“1”中的哪一个转换为int类型?”。那么答案是什么呢?python如何知道哪个字符串能够转换为整数?它依赖于编程语言吗?Java对此有不同的规则吗?

在python中,我们基本上使用3种方法。int()、float()和str()。如果必须将字符串类型转换为整数值,则将使用int()。 将其视为一个适当的参数函数。现在,如果您尝试传递一些参数,它将查找严格的参数,如果没有找到,您将得到一个错误。 举个例子。 在python中传递int(“34”)时,它将以整数形式返回34 但是,如果您尝试传递int(“34.12”),它将返回错误,因为即使在从字符串转换之后,最终的答案也是浮点,但是函数/方法(在java中)只返回整数值,因此它将返回错误。 以java为例 我们可以做一些像。。。 parseDatatype(变量)将字符串转换为数据类型。i、 e-整数.parseInt(字符串); 反之亦然,或者转换成字符串。。。 Datatype.toString(变量); i、 e-整数.toString(变量)


希望您能得到所需的信息。

要了解python如何检查某些内容是否可强制转换,您必须首先了解不同的数据类型具有不同的数据大小,尽管有些数据类型在python中是相同的。 当变量用于强制转换时,首先测试该值的大小,数组或字符串的大小比integer的大得多,这是为了通过帮助9f data sizes来验证数据类型。现在,请注意,Python将任何没有前缀的数字视为整数。 因此,在查找大小之后,它会查找指定的前缀,以验证它是字符串/数组还是字符(即-'a')。 排除前缀后,它现在只需要区分整数和浮点,显然,使用大于数字数据大小的数据大小排除字符或任何其他非数字数据类型。 使用下面的代码检查输入是否为字符串,否则Python会将所有输入视为字符串,因此即使我输入数字/小数点,输入也会被视为字符串

def get():
    prompt = 'Give a number or a word.\n'
    x = input(prompt)
    try:
        float(x)
        print('You entered a number.')

    except:
        print('You entered a string.')
所有这些都已经在堆栈溢出上,所以请使用它。
最后,为了区分整数和浮点,不仅仅是python,而且几乎所有编程语言都使用最大位转换或位操作。由于所有数据都存储在位中,因此您可以很容易地编写编译器来区分整型和浮点型。你所需要做的就是检查尾数。如果是整数,它将存储,但为null,否则它将给您一些值。

好吧,我想您可以跳过我想要的内容。我想知道当你在python中传递int(“34”)时,它是如何以整数形式返回34的。所以,再一次,当我在python中传递int(“34”)时,python是如何知道“34”可以转换成整数的?字符串和整数有不同的字节结构吗?