2018-10-10函数基础

深拷贝和浅拷贝

深拷贝 copy.deepcopy(对象)
浅拷贝 copy.copy(对象)
深拷贝: 将对象对应的值进行拷贝,产生一个新的对象
浅拷贝:直接将对象拷贝,不会产生新的对象

字典和列表的应用

1.列表的元素和字典的值可以是任何数据
2.常见的组合方式
a.列表中有字典

person = [{'name':'zhangsan', 'age':34}, {'name':'lisi','age' : 39}, {}]

找出person中年级最大的人

max1 = 0
name = ''
for item in person:
       age = item['age']
       if age > max1:
               max1 = age
               name = item['name']
 
print(name, max1)

b.字典当中有列表
写一个程序,保存一个班级的信息,包括班级名,位置及所有学生(学生中需要保存名字,年龄,毕业学校)

my_class =[ {'classname':'python1807','location':'18-6',
            'all_stu':[{'name':'xiaohua', 'age':18, 'school':'qinghua'},
                       {'name':'xiaohong','age':'21','school':'beida'}]
练习:在班级中添加一个学生,姓名 老王,年龄 40 学校 北大青鸟
name = input('请输入名字:')
age = input('请输入年龄:')
school = input('请输入学校:')
stu = {'name':name, 'age':age,'school':school}
my_class.append(stu)
print(my_class)

练习2: 删除班级年龄小于20的学生

stu = my_class['all_stu']
age = stu['age']
if age<20:
        stu.remove('age')
print(my_class)

函数

1.为什么使用函数
没有函数的时候的问题:a.同样的代码需要重复很多遍 b.功能发生改变需要修改很多地方

2.函数的声明
函数:函数就是对实现某一特定功能的代码段的封装
分类:自定义函数(程序员自己声明实现其功能)和内置函数(系统已经声明实现完成)

a. 语法:

def 函数名(形参列表):
函数体
说明:明:
def -- python中声明函数的关键字
函数名 --> 标识符,不能是关键字。遵守PEP8命名规范(所有字母小写,多个单词之间使用下划线隔开)见名知义(看见名字知道函数的功能)
() --> 固定格式
参数列表 --> 形参列表,参数名1,参数名2,...
可以有多个参数,也可以没有
参数是用来从函数的外部给函数里面传值用的
: -- 固定格式
函数体 -- 就是现实函数功能的代码段

b.初学者声明函数的步骤
1.确定函数的功能
2.根据功能确定函数名
3.确定参数:确定有没有,确定有几个(看实现函数的功能需不需要从函数外面传值,需要传几个)
4.实现函数功能
5.确定返回值

c.函数的调用

声明函数的时候,不会执行函数体。函数体只有在函数调用的时候才会执行
1.语法:
函数名(实参列表)
2.说明:
函数名 --> 必须是已经声明过的函数
() --> 固定的
实参列表 --> 数据1,数据2...
用来给形参赋值


image.png
c.函数的参数

1.分类: 位置参数 关键字参数
位置参数:按照实参的顺序一一给形参赋值
关键字参数:形参1=值1, 形参2=值2...

位置参数:
def num (num1,num2):
        print(num1,num2)

num(0,1) # 0,1
关键字参数
num(num2 = 0,num1=1)

2.默认参数
函数声明的时候可以给参数设置默认值,但是,有默认值的参数,必须放在参数列表的最后,有默认值的参数,在调用的时候可以不用传参

def num (a,b,c=7)
        print('a=',a,'b='b,'c='c)
num(1,2)  #a=1, b=2, c=7

3.不定长参数
参数的个数不确定的时候,可以在形参的前面加*,将这个形参变成一个元祖,用来接收多个参数

注意:如果函数有多个参数,那么不定长参数要放在最后

# 写一个函数,计算多个数的和
def my_sum(*nums):
    print(sum(nums))
my_sum(1,2,3)  #6

def stu(name,age,*score)
      print(name,age,score)
 stu('小数',12,23,34,54) #'小数',12,(23,34,54)



d.函数的返回值

定义:函数的返回值就是函数调用表达式的值,就是return关键字后面的表达式的值。
python中所有的函数都有返回值,返回值默认是None
(执行函数体没有遇到return,函数的返回值就是None;遇到了return函数的返回值是return后面的值)
return -- 关键字,只能写在函数体中。用来返回返回值和结束函数
注意:看一个函数的返回值,只看有没有遇到return。只要没有遇到就是None,遇到return就是return后面的值

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容