3小时入门Python——第二十一课类型转换

  |   0 评论   |   0 浏览   |   给我丶鼓励

动态与静态类型

Python 是一种动态强类型的语言。动态类型意味着只有运行时对象(值)具有类型,而没有存储它们的变量。您可以在代码执行期间将多个不同类型的值存储在单个变量中,并且不会发生任何错误。

以下代码完全有效:

v = 10  # variable v stores an integer value
 
v = 'hello'  # v now stores a string

另一方面,在静态类型语言中,每个变量都具有在运行时无法更改的类型,因此上面的代码将失败。静态类型语言的示例是 C ++,Java 和 Go。

强打字与弱打字

强类型化意味着不会发生隐式类型转换。例如,即使 "125" 只包含数字,它也是一个字符串。要在算术运算中使用它,您需要将其类型更改为整数或其他数字类型。尝试按原样使用它会导致 TypeError

>>> "125" + 10
...
TypeError: can only concatenate str (not "int") to str

如果 Python 具有弱类型系统,则该值可以解释为整数以成功执行该操作。将其中一个操作数隐式转换为另一个操作数的类型时,这种行为称为 type coercion

由于 Python 中没有类型强制,因此根据提供的参数类型,相同的操作数可能会给出不同的结果。例如,您可以添加两个字符串以获得串联。也可以将字符串乘以整数:

print(125 + 125)  #  "250"
 
print("125" + "125")  # "125125"
 
print(125 * 4)  # "500"
 
print("125" * 4)  # "125125125125"
 
print("This is a number:", 125)  # "This is a number: 125"

该示例还显示,如果在括号中用逗号分隔它们,则可以打印不同类型的值。该 print() 函数将打印所有由空格分隔的参数。

显式铸造

将值转换为另一种类型的过程也称为类型转换。尽管 Python 中不允许使用隐式类型转换,但您经常会发现自己需要在代码中定义显式类型转换。当您使用用户的输入时,这种情况经常发生。

想象一下,您要求用户提供一个年龄,以后将在某些计算中使用该年龄。要将字符串转换为整数类型,可以使用内置 int 函数。

raw_age = "22"
print(type(raw_age))  # <class 'str'>
 
 
age = int(raw_age)
print(type(age))  # <class 'int'>

的 类型 函数用于查找提供的值的类型。

要将整数转换为字符串类型,请使用 str 函数:

age = 22
print(type(age))  # <class 'int'>
 
string_age = str(age)
print(type(string_age))  # <class 'str'>

如您所见,要将值强制转换为某种类型,我们使用具有相同名称的函数。如果不允许在两种类型之间进行转换,您将看到一个错误。除了我们上面介绍的 strint 函数之外,还有一个 float 函数。它将给定值转换为浮点类型。

以下是在不同类型之间进行转换的更多示例:

f = 3.14  # the type is float
print(type(f))  # <class 'float'>
 
s = str(f)  # converting float to string
print(type(s))  # <class 'str'>
 
i = int(f)  # while converting a float value to an integer its fractional part is discarded
print(i)  # 3
print(type(i))  # <class 'int'>
 
f = float(i)
print(f)  # 3.0
print(type(f))  # <class 'float'>

重要的是要记住,您可以在 Python 中将任何类型的值转换为字符串。


标题:3小时入门Python——第二十一课类型转换
作者:给我丶鼓励
地址:https://blog.doiduoyi.com/articles/1593925676891.html

评论

发表评论