模块课程(4/4)
类型转换
Python 是强类型:它永远不会将字符串添加到数字中,除非您
这么说吧。要从一种类型转换为另一种类型,可以使用构造函数:
int()、float()、str()、bool()、list()、tuple()、set()。
int("42") # 42
float("3.14") # 3.14
str(42) # '42'
list("abc") # ['a', 'b', 'c']
tuple([1, 2]) # (1, 2)
set([1, 1, 2]) # {1, 2}带有字符串的 int()
int("42") 有效; int("42.5") 引发 ValueError。对于十进制字符串,
首先遍历 float: int(float("42.5")) → 42 (截断,不
圆)。
int("42") # 42
int(" 42 ") # 42 (strip automatico degli spazi)
int("42.5") # ValueError
int(float("42.5")) # 42
int("ff", 16) # 255 (base esplicita)带有字符串的 float()
接受十进制和科学记数法。
float("3.14") # 3.14
float("1e3") # 1000.0
float("inf") # inf
float("nan") # nanstr():“友好”转换
str(x) 内部调用 x.__str__() 来获取“人类”表示。
还有 repr(x) 用于“调试器”表示,通常更多
显式(带字符串引号等)。
str(3.14) # '3.14'
str([1, 2]) # '[1, 2]'
str(True) # 'True'bool() 和真实性
bool(x) 仅针对 Python 的 falsy 值返回 False:
False、None- 零数字:
0、0.0 - 空容器:
""、[]、()、{}、set()
其他一切都是真实。
bool(0) # False
bool("") # False
bool([]) # False
bool("0") # True ! (stringa non vuota)
bool([0]) # True ! (lista non vuota, anche se contiene 0)模式:安全输入解析
testo = input("età: ")
try:
eta = int(testo)
except ValueError:
print(f"non è un numero: {testo!r}")
eta = None布尔评估(真实性)
在Python中,每个对象都有一个隐含的真值。您可以使用 bool(...) 函数检查任何对象的布尔值。空集合(例如 ""、[]、{}、set())和零值(0、0.0)始终计算为 False。所有其他对象的计算结果为 True。
尝试一下
给定 `a = '10'` 和 `b = '32'` (字符串),计算 `total` 作为它们的整数和。评估“总计”。
显示提示
int(a) + int(b),否则连接字符串。
3 次尝试后可用的解决方案
复习练习
给定列表 `values = ['', 'x', 0, None, 1, []]`,使用 bool() 仅使用 true 元素构建 `truthy`。评价‘真实’。
显示提示
使用过滤器 bool(v) (或只是“if v”)进行列表理解。
3 次尝试后可用的解决方案
额外的挑战
给定字符串列表 \`string_numbers = ["1", "2", "3"]\`,使用 int()\` 将每个元素转换为整数,并将它们加在一起以获得值 \`6\`。将总和存储在“sum_val”中并对其进行评估。
显示提示
通过索引访问元素,例如int(string_numbers[0]),并对它们求和。
3 次尝试后可用的解决方案