python入门之函数调用第三关函数与函数调用分清主次_第三章:Python基础の函数和文件操作实战...

本課主題

Set 集合和操作实战

函数介紹和操作实战

参数的深入介绍和操作实战

format 函数操作实战

lambda 表达式介绍

文件操作函数介紹和操作实战

本周作业

Set 集合和操作实战

Set 是一个无序且不容许重复的序列

创建集合有两种方式:

第一种是通过直接创建、例如:s = {11,22}

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> se = {11,222,11,222}2 >>> print(se)3 {11, 222}4 >>>type(se)5

创建集合 方法一

第二种是通过转换。从一个可迭代类型的数组、元组转换成集合 Set。例如:s = Set(list)

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> li = [11,22,11,33,11,44,55]2 >>> se = set(li) #把列表转换成集合

3 >>>se4 {33, 11, 44, 22, 55}5 >>>type(se)6

创建集合 方法二

原理:在调用 Set 函数时,它会自动调用 __intit__ 方法,这叫构造方法 ,其实内部会执行一个 For 循环,循环这个"可迭代对象"里的所有元素,一个一个添加到集合里(什么是构造方法会在后期学到面向对象后再分享)

Set 集合的功能

这是Set 集合在 Python3.5.2的源码,我把它贴进来,里面有很多双下划线的方法,现在我都不知道是什么,让我了解后会回来补充一下。现在最主要的是要了解下面这几个集合的功能:我把它归类为添加、更新、找不同、找相同、删除和返回Boolean值六大类。

ContractedBlock.gif

ExpandedBlockStart.gif

classset(object):"""set() -> new empty set object

set(iterable) -> new set object

Build an unordered collection of unique elements."""

def add(self, *args, **kwargs): #real signature unknown

"""Add an element to a set.

This has no effect if the element is already present."""

pass

def clear(self, *args, **kwargs): #real signature unknown

"""Remove all elements from this set."""

pass

def copy(self, *args, **kwargs): #real signature unknown

"""Return a shallow copy of a set."""

pass

def difference(self, *args, **kwargs): #real signature unknown

"""Return the difference of two or more sets as a new set.

(i.e. all elements that are in this set but not the others.)"""

pass

def difference_update(self, *args, **kwargs): #real signature unknown

"""Remove all elements of another set from this set."""

pass

def discard(self, *args, **kwargs): #real signature unknown

"""Remove an element from a set if it is a member.

If the element is not a member, do nothing."""

pass

def intersection(self, *args, **kwargs): #real signature unknown

"""Return the intersection of two sets as a new set.

(i.e. all elements that are in both sets.)"""

pass

def intersection_update(self, *args, **kwargs): #real signature unknown

"""Update a set with the intersection of itself and another."""

pass

def isdisjoint(self, *args, **kwargs): #real signature unknown

"""Return True if two sets have a null intersection."""

pass

def issubset(self, *args, **kwargs): #real signature unknown

"""Report whether another set contains this set."""

pass

def issuperset(self, *args, **kwargs): #real signature unknown

"""Report whether this set contains another set."""

pass

def pop(self, *args, **kwargs): #real signature unknown

"""Remove and return an arbitrary set element.

Raises KeyError if the set is empty."""

pass

def remove(self, *args, **kwargs): #real signature unknown

"""Remove an element from a set; it must be a member.

If the element is not a member, raise a KeyError."""

pass

__hash__ =Nonedef symmetric_difference(self, *args, **kwargs): #real signature unknown

"""Return the symmetric difference of two sets as a new set.

(i.e. all elements that are in exactly one of the sets.)"""

pass

def symmetric_difference_update(self, *args, **kwargs): #real signature unknown

"""Update a set with the symmetric difference of itself and another."""

pass

def union(self, *args, **kwargs): #real signature unknown

"""Return the union of sets as a new set.

(i.e. all elements that are in either set.)"""

pass

def update(self, *args, **kwargs): #real signature unknown

"""Update a set with the union of itself and others."""

pass

def __and__(self, *args, **kwargs): #real signature unknown

"""Return self&value."""

pass

def __contains__(self, y): #real signature unknown; restored from __doc__

"""x.__contains__(y) <==> y in x."""

pass

def __eq__(self, *args, **kwargs): #real signature unknown

"""Return self==value."""

pass

def __getattribute__(self, *args, **kwargs): #real signature unknown

"""Return getattr(self, name)."""

pass

def __ge__(self, *args, **kwargs): #real signature unknown

"""Return self>=value."""

pass

def __gt__(self, *args, **kwargs): #real signature unknown

"""Return self>value."""

pass

def __iand__(self, *args, **kwargs): #real signature unknown

"""Return self&=value."""

pass

def __init__(self, seq=()): #known special case of set.__init__

"""set() -> new empty set object

set(iterable) -> new set object

Build an unordered collection of unique elements.

# (copied from class doc)"""

pass

def __ior__(self, *args, **kwargs): #real signature unknown

"""Return self|=value."""

pass

def __isub__(self, *args, **kwargs): #real signature unknown

"""Return self-=value."""

pass

def __iter__(self, *args, **kwargs): #real signature unknown

"""Implement iter(self)."""

pass

def __ixor__(self, *args, **kwargs): #real signature unknown

"""Return self^=value."""

pass

def __len__(self, *args, **kwargs): #real signature unknown

"""Return len(self)."""

pass

def __le__(self, *args, **kwargs): #real signature unknown

"""Return self<=value."""

pass

def __lt__(self, *args, **kwargs): #real signature unknown

"""Return self

pass@staticmethod#known case of __new__

def __new__(*args, **kwargs): #real signature unknown

"""Create and return a new object. See help(type) for accurate signature."""

pass

def __ne__(self, *args, **kwargs): #real signature unknown

"""Return self!=value."""

pass

def __or__(self, *args, **kwargs): #real signature unknown

"""Return self|value."""

pass

def __rand__(self, *args, **kwargs): #real signature unknown

"""Return value&self."""

pass

def __reduce__(self, *args, **kwargs): #real signature unknown

"""Return state information for pickling."""

pass

def __repr__(self, *args, **kwargs): #real signature unknown

"""Return repr(self)."""

pass

def __ror__(self, *args, **kwargs): #real signature unknown

"""Return value|self."""

pass

def __rsub__(self, *args, **kwargs): #real signature unknown

"""Return value-self."""

pass

def __rxor__(self, *args, **kwargs): #real signature unknown

"""Return value^self."""

pass

def __sizeof__(self): #real signature unknown; restored from __doc__

"""S.__sizeof__() -> size of S in memory, in bytes"""

pass

def __sub__(self, *args, **kwargs): #real signature unknown

"""Return self-value."""

pass

def __xor__(self, *args, **kwargs): #real signature unknown

"""Return self^value."""

pass

__hash__ = None

Set集合的源码

添加: add( ), unions( )

更新: difference_update( ), symmeteric_difference_update( ), intersection_update( ), update( )

找不同: difference( ), symmeteric_difference( ),

找相同: intersection( )

删除: discard( ), remove( ), clear( ), pop( )

返回Boolean值: isdisjoint( ), issuperset( )

添加:add()

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> se = set() #创建空集合

2 >>>se3 set()4 >>> se.add(123) #添加123到集合里

5 >>>se6 {123}

集合功能:添加

清除所有在集合里的内容:clear()

ContractedBlock.gif

ExpandedBlockStart.gif

1 >>> se = set() #创建一个空集合

2 >>> se.add(111)3 >>> se.add(222)4 >>> se.add(333)5 >>> print(se)6 {333, 222, 111}7 >>> se.clear() #清除集合里的所有元素

8 >>>se9 set()

集合功能:删除

对比两个集合,找其中一方的不同,相当于 database 里的 left outer join: difference()

1005794-20160828195418543-1190077685.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在编程中,函数是一个非常重要的概念。函数可以将一段代码封装起来,使得代码更加模块化和易于维护。同时,函数也可以被多次调用,从而提高代码的复用性。 在使用函数时,我们需要分清主次。首先,我们需要确定函数的主要功能,也就是函数的核心逻辑。其次,我们需要考虑函数的调用方式,包括传入参数和返回值。最后,我们需要注意函数的命名规范和注释,以便其他人能够理解和使用我们的代码。 总之,函数是编程中非常重要的一部分,我们需要认真对待函数的设计和使用,以提高代码的质量和可维护性。 ### 回答2: 第四篇章的主题是“函数函数调用——分清主次”,在突破第四的过程中,需要学会如何理解函数的含义,以及函数调用的原理。同时,需要学会如何正确地设计函数的输入、输出参数,以及如何进行函数调用操作。 本主要内容有: 1.什么是函数 函数是一段完成特定任务的代码,它可以实现代码重复使用,使得代码更加简洁高效。函数可以进行输入参数的定义和输出参数的返回,从而帮助实现更为灵活和高效的编程操作。 2.如何定义函数 函数的定义包括函数的名称、函数的输入参数、函数的输出参数以及函数的具体实现代码。在定义函数时,需要注意函数名称的唯一性和描述性,输入、输出参数的类型和名称应该明确清晰,函数代码的实现应该遵循“输入即输出”、“分步处理”的原则。 3.如何调用函数 调用函数时需要注意当前程序所在位置和函数的实际调用方式,需要明确调用的函数类型和参数类型并进行正确的传递,同时,还需要注意函数调用的结果返回和后续操作设计等问题。 4.常见的函数调用错误 常见的函数调用错误包括参数类型不匹配、参数数量不匹配、函数名称输入错误等。只有明确理解合理设计函数和正确进行调用,才能避免这些常见错误的发生。 总的来说,第四的重点是帮助大家理解函数的实现原理和函数调用的过程,以及函数的输入输出参数的设计。同时,还需要注意常见的函数调用错误,并根据实际情况进行合理的调整和修改操作,以实现更为高效灵活的编程操作。 ### 回答3: 函数函数调用是程序设计中非常重要的概念,也是初学者必须掌握的内容。在理解函数及其调用之前,我们首先需要了解什么是函数函数是一组完成特定任务的代码块,这个代码块可以接受输入,处理输入并输出结果。函数可以模块化代码、提高代码重用率、简化代码结构等,因此在程序设计中使用函数非常普遍。函数包括函数名称、参数列表、返回值和函数体等四个部分。 函数调用是指在程序中调用函数的过程。调用函数时,需要提供函数名称和参数列表以及指定函数返回值的类型。程序在执行调用语句的时候,就会进入到函数体中执行所需的代码,并返回执行结果给调用者。 在使用函数函数调用时,我们需要分清主次。主要体现在以下几个方面: 1. 确定函数的功能。在编写函数时,需要精确定义该函数的功能以及所需的参数和返回值类型。一定要避免一个函数承担不同功能,或者一个函数只是一个语句块的容器。 2. 确定函数调用的位置。在确定函数调用位置时,需要明确其所在的上下文环境,以确保参数的传递和返回值的使用正确无误,避免出现混乱的逻辑错误。 3. 确定函数调用的数量。在程序设计中,正确使用函数可大幅减少代码的重复性,提高代码复用率,但过多的函数调用也会产生额外的开销,降低程序的效率。 4. 确定函数调用的方式。在函数调用时,有时需要使用传值调用,有时需要使用指针调用等不同的方式来传递参数和调用函数。 综上所述,函数函数调用是程序设计中非常重要的概念,我们需要在理解其基础概念的基础上,分清主次,正确地应用到程序设计中。只有正确地使用函数函数调用,才能为编写高效、优雅和易维护的程序打下坚实的基础

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值