Python函数的介绍

阅读文本大概需要 6.6 分钟

写在前面

新的一周开始了,昨天故事也听了,酒也喝了,希望能对您有所帮助。在开始之前先提个建议:在每周的周末大家都可以给自己充波电,出去和家人、好友一起玩玩走走,看一篇心灵鸡汤、一部励志电影或一些搞笑的视频也行。懂得如何在这个焦躁的时代为自己减压充电,毕竟人还是需要鼓励的。

Mark 昨天下午就去打了一场酣畅淋漓的篮球,虽然很累但是心情很舒畅,今天一早起来精力充沛,准备以一种更加饱满的状态为大家带来今天的分享。

对了,再插个题外话。这两天篮球的东西部决赛是不是很精彩呢。看了今天的东部抢七决赛,我想替广大球友说一句:“三旬老汉,牛逼!” 。还有一个好消息,明天 Mark 要去休斯顿和周琦一起看西部抢七决赛,有上车的吗?(机票钱我出,好吧

所以,在这里喜欢篮球的小伙伴们可以和 Mark 加个好友(要是还喜欢编程就更好了),我们可以一起聊球看比赛(学习Python),说不定日后相遇还能切磋一下呢。

Python

接下来我们正式开始Python的学习。关于 Python 的学习在这里还是想要向大家解释一下,因为每个人的学习情况、编程水平不同,可能是编程大佬,也可能是入门小白,所以 Mark 在这里提个建议:

您如果学习的进度已经赶超 Mark 更新的速度了,您可以每日抽上三分钟,以一种复习的状态去回顾今天所介绍的知识;如果是刚入门,可以认真学习一下 Mark 今日分享的知识,要学以致用,勿要走马观花。

既然是做技术公号,就要保证所更新内容是一个体系框架,从基础到进阶循序渐进,希望大家多多支持,给 Mark 一点时间。Mark 不够优秀,但会保证足够努力,用心为大家做好每一篇分享。

今天要介绍的知识主要是是关于函数的,因为之前忘记 set 的介绍了,在这里先给大家补充下,之后大家记得把 list、tuple、dict、set 四种数据结构的相同与区别详细做个笔记。好了,我们开始吧。

01

代码块与笔记

Set

1

Set 简介

set 类似于 dict,是一组 key 的集合,不存储 value , 本质是无序和无重复元素的集合,并且元素是不可变对象

2

常用操作

创建 set 集合1

# 自动过滤重复元素

s1 = {1, "A", (2, 3), 1}

print(s1)  # {1, (2, 3), 'A'}                                                                    

# 使用 set 函数

l1 = [1, 2, 3, 4]  # list

s1 = set(l1)

t1 = (1, 2, 3, 4)  # tuple

s1 = set(t1)

print(s1)  # {1, 2, 3, 4}

# 只存储key,不存储value

s1 = set({"Iu": 98, "Mark": 98})

print(s1)  # {'Mark', 'Iu'}

增删元素2

s1 = set((1, 2, 3))

# set的元素不能是列表,因为列表是可变的

# s1.add([4, 5])

# set的元素不能是字典,因为字典是可变的

# s1.add({"Tom": 100})

s1.add((4, 5))  

# {1, 2, 3, 4, 5}

print(s1)

# 插入整个list tuple 字符串,打碎插入

s1.update([6, 7])  

s1.update((8, 9))

s1.update('Iu')

# 无序 {1, 2, 3, 'I', 6, 7, (4, 5), 8, 9, 'u'}

print(s1)

# 删除对应元素,无索引

s1.remove((4, 5))

# {1, 2, 3, 'u', 6, 7, 8, 9, 'I'}

print(s1)

交并集3

# set可以做数学意义上的交集、并集等操作

s1 = set((1, 2, 3))

s2 = set((3, 4, 5))

# 取交集,得到一个新的set 

print(s1 & s2)  # {3}

# 取并集 

print(s1 | s2 )  # {1, 2, 3, 4, 5}

互相转换4

# set 与 list、tuple 数据结构之间的相互转换

# list --> set

l1 = [1, 2, 3, 4]

s1 = set(l1)

# tuple --> set

t1 = (1, 2, 3, 4)

s1 = set(t1)

# set --> list

l1 = list(s1)

# set --> tuple

t1 = tuple(s1)

小练习5

# 去掉list里的重复元素

l = [1, 2, 3, 4, 1, 2, 3]

s = set(l)

l = list(s)

print(l)  # [1, 2, 3, 4,]

函数

1

函数介绍

  1. 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,本质是对功能的封装
  2. 优点:简化代码结构,增加了代码的复用度
  3. 分类:内置函数:print() 用户自定义函数 myPrint()

2

常用操作

内置函数1

# 常见的一些内置函数

input("input()是内置函数")

a, b = -1, 2

print(abs(a))

print(max(a, b))

print(pow(2, 5))     # 幂 2的5次方

print(round(5.9, 2))  # 四舍五入,保留2位

s = "Mark"

print(len(s))

自定义函数2

# 无参无返回值的函数

def print1():

    print("To be a better man !")

    # 函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回

    # return 等价于 return None 表示返回值为 None 也可以省略

    return 

print1()


# 有参无返回值的函数

# 形参:本质上为变量 参数顺序传递,个数对应

def print2(name, age):

    print(name, age)

# 实参:本质是值

print2("Mark", 18)


# 有参有返回值的函数

def sum1(a, b):

    # return语句结束函数,返回信息

    return a + b

    # 不会被执行

    print("我想被打印")

sum1 = sum1(1, 2)

print(sum1)

空函数3

# pass语句什么都不做,那有什么用?

# 实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,
# 就可以先放一个pass,让代码能运行起来。

def nop():

    pass

默认参数4

# 幂函数,一般进行平方的次数比较多,所以可以默认将幂设为 2 ,一般放在最后

def _power(x, n=2):

    s = 1

    while n > 0:

        n -= 1

        s = s * x

    return s

print(_power(5))  # 25

print(_power(4, 3))  # 64

关键字参数5

# 关键字参数,传参顺序可以改变

def print2(name, age):

    print(name, age)

print2(age=26, name="Iu")  # Iu 26  

可变参数6

# args为元组类型,包含多个参数

def f(name, *args):

    print(name)

    print(args)  # ('Mark', 'Tom')

f("Iu", "Mark", "Tom")


def _sum(*l):

    _sum = 0

    for i in l:

        _sum += i

    return _sum

print(_sum(1, 2, 3, 4))  # 10


# **kwargs 为字典类型,包含多个参数

def f(**kwargs):

    print(kwargs)

f(x=1, y=2, z=3)  # {'x': 1, 'y': 2, 'z': 3}


# 接受任意参数

def f(*args, **kwargs):

    pass  

02

练习题

今天的练习要求有两点,一是把之前分享的4种数据结构的相同与区别之处做详细笔记;二是搞懂今天介绍的函数知识,并把以前写过的功能用函数封装一下,明天我们继续函数的学习。

最后给大家推送波福利!!!如果你打算入手或着正在学习Python,欢迎加入我们一起学习。后台回复「Python」,获取到你想要的资源。同时我们组建了一个Python技术学习群,里面大佬与小白都有,有很好的学习氛围。想要进群学习的,加 Mark 微信「IMark950831」,备注「加群」,期待你的到来!

好了,今天的分享就到这了,觉得写得不错的,点赞转发支持下。

点赞转发、留言鼓励是对于原创作者最大的鼓励,您的一次点赞、留言也许在您看来没有什么,可是在 Mark看 来那是大家对自己的肯定与鼓励。未来,我们一起努力!

原创不易,感谢分享

原文发布于微信公众号 - Python梦工厂(AzMark950831)

原文发表时间:2018-05-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BestSDK

9个,程序员又爱又恨的编程习惯

编程习惯No. 1:使用goto 关于禁止使用goto可以追溯到许多结构化编程工具还未面世的时代。如果程序员想要创建一个循环或跳到另一段程序中,那么他们需要输入...

2987
来自专栏人云亦云

一个由JS时间引发的

2305
来自专栏怀英的自我修炼

Java漫谈12

上周聊完了Java中的String这种类型,这周我想聊聊Java中的集装箱——集合。当然,这篇也是Java基础漫谈系列的最后一篇文章。不过可能你会说不对啊,Ja...

35111
来自专栏微信公众号:Java团长

写好Java代码的30条经验总结

成为一个优秀的Java程序员,有着良好的代码编写习惯是必不可少的。下面就让我们来看看代码编写的30条建议吧。

672
来自专栏枕边书

设计模式,Let's “Go”! (下)

前言 接上篇 设计模式,Let's “Go”! (中), 继续更新设计模式,今天介绍的设计模式有责任链模式、蝇量模式、解释器模式、中介者模式、备忘录模式、原型模...

1596
来自专栏web前端教室

今天-零基础课的教学事故及全过程

有什么说什么,有错了就要认。 “今天我有个地方讲错了”,“然后我还说提出问题的同学有点过于纠结”。出问题要说清楚,来,事情是这样的。。。 ? 截图一中,点击事件...

1646
来自专栏编程

写好Java代码的30条经验总结

无可厚非你是一名程序员,但你真的是一个优秀的程序员吗?答案可不一定了。想要成为一个优秀的程序员,有着良好的代码编写习惯是必不可少的。下面就让我们来看看Java代...

1885
来自专栏章鱼的慢慢技术路

今日头条2018校园春季招聘研发岗位笔试(第一场)经验

1365
来自专栏章鱼的慢慢技术路

今日头条2018校园春季招聘研发岗位笔试(第一场)经验

993
来自专栏Crossin的编程教室

【每周一坑】乒乓数

刚从假期回来,又要迎接周末,各位看官想必都很辛苦,所以本周每周一坑为大家准备一道简单的甜点题目,本题取材于伯克利大学 CS61 课程 homework02。 求...

2646

扫码关注云+社区