Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情。
难度级别: 中级
预测以下 Python 程序的输出。
程序一:
class Acc: def __init__(self, id): self.id = id id = 555 acc = Acc(111) print acc.id
输出:
111
解释: 类“Acc”的实例化自动调用方法__init__并将对象作为self参数传递。111 被分配给称为 id 的对象的数据属性。 值“555”没有保留在对象中,因为它没有分配给类/对象的数据属性。所以,程序的输出是“111”
程序二:
for i in range(2): print i for i in range(4,6): print i
输出:
0 1 4 5
说明: 如果只将单个参数传递给 range 方法,Python 会将此参数视为范围的结束,并且范围的默认起始值为 0。因此,它将打印从 0 开始到提供的参数之前的所有数字。
对于第二个 for 循环,起始值显式提供为 4,结束值为 5。
程序三:
values = [1, 2, 3, 4] numbers = set(values) def checknums(num): if num in numbers: return True else: return False for i in filter(checknums, values): print i
输出:
1 2 3 4
说明: 函数“filter”将返回列表值中的所有项目,当传递给函数“checknums”时返回 True。“checknums”将检查该值是否在集合中。由于集合中的所有数字都来自值列表,因此列表中的所有原始值都将返回 True。
程序四:
counter = {} def addToCounter(country): if country in counter: counter[country] += 1 else: counter[country] = 1 addToCounter('China') addToCounter('Japan') addToCounter('china') print len(counter)
输出:
3
解释: “len”函数的任务是返回字典中键的数量。这里使用“addToCounter”函数将 3 个键添加到字典“country”中。 请注意 - 字典的键区分大小写。
自己试试: 如果相同的密钥被传递两次会发生什么?
如果大家发现任何不正确的地方,都可以在下方评论区告诉我,互相学习,共同进步!