Python全栈开发day4
1、python三元运算
实现方法:
result = 值1 if 条件 else 值2
例如:
|
1
2
3
4
|
#!/bin/env python#-*- coding:utf-8 -*-name = 'sam' if 2 > 3 else 'shaw'print(name) |
2、集合
集合是一个无序并且不重复的元素的集合,基本功能包括:关系测试和消除重复元素(去重)
2.1 集合的定义:
|
1
2
3
4
5
6
7
8
|
#!/bin/env python#-*- coding:utf-8 -*-basket = {'apple','orange','apple','pear'}# 或者name = set('sam',)print(basket,name)C:\Python35\python.exe F:/PyCharm/Python/PY_learn/lianxi.py{'pear', 'apple', 'orange'} {'a', 's', 'm'} |
2.2 集合方法总结
http://www.cnblogs.com/opsedu/p/5546559.html
3、拷贝
3.1 数字和字符串
对于字符串和数字来说,对其的赋值,浅拷贝和深拷贝操作,操作后的值都一样,因为他们都指向同一个内存地址
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#!/bin/env python#-*- coding:utf-8 -*-import copya = 'shaw'm = a # 赋值a2 = copy.copy(a) # 浅拷贝a3 = copy.deepcopy(a) # 深拷贝print(id(a),id(m),id(a2),id(a3)) # 查看各变量内存地址C:\Python35\python.exe F:/PyCharm/Python/PY_learn/lianxi.py17386440 17386440 17386440 17386440# # # b = 68n = b # 赋值(其他同上)b2 = copy.copy(b)b3 = copy.deepcopy(b)print(id(b),id(n),id(b2),id(b3))C:\Python35\python.exe F:/PyCharm/Python/PY_learn/lianxi.py1363081104 1363081104 1363081104 1363081104 |
3.2 其他数据类型
对于字典、元祖、列表而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。
a. 赋值(只是创建了一个变量,该变量指向了原来的内存地址)
|
1
2
3
4
5
6
7
8
|
#!/bin/env python#-*- coding:utf-8 -*-import copyinfo = {'k1':'shaw','k2':'sam','k3':['shaw',24]}info2 = infoprint(id(info),id(info2))C:\Python35\python.exe F:/PyCharm/Python/PY_learn/lianxi.py6817416 6817416 |
b. 浅拷贝(在内存中,仅仅另创建了第一层数据,即仅仅另copy了一份最外层的数据)
|
1
2
3
4
5
6
7
8
9
10
|
#!/bin/env python#-*- coding:utf-8 -*-import copyinfo = {'k1':'shaw','k2':'sam','k3':['shaw',12345]}info2 = copy.copy(info)print(id(info),id(info2)) print(id(info.get('k1')),id(info2.get('k1'))) C:\Python35\python.exe F:/PyCharm/Python/PY_learn/lianxi.py17237640 1772864817667160 17667160 # 第二层内存指向同一个地址,表示第二层并没有复制 |
c. 深拷贝(在内存中将所有数据重新创建了一份。除了最里面一层,由' '决定的)
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/bin/env python#-*- coding:utf-8 -*-import copyinfo = {'k1':'shaw','k2':'sam','k3':[{'shaw':24},12345]}info2 = copy.deepcopy(info)print(id(info),id(info2))print(id(info.get('k3')[0]),id(info2.get('k3')[0]))print(id(info.get('k3')[1]),id(info2.get('k3')[1]))C:\Python35\python.exe F:/PyCharm/Python/PY_learn/lianxi.py5310216 119136085310088 123445844673488 4673488 # 最里面一层内存地址相同 |
注意:
python中str和int不能被修改,想要修改,只能再创建
python内部对字符串和数字的优化:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#!/bin/env python#-*- coding:utf-8 -*-import copya = 298b = 298print(id(a),id(b))# # #c = 'shaw_wang'd = 'shaw_wang'print(id(c),id(d))C:\Python35\python.exe F:/PyCharm/Python/PY_learn/lianxi.py3362768 3362768 # 相同的内容,只创建一份,指向同一个地址4600496 4600496 #相同的内容,只创建一份,指向同一个地址 |
4、函数
4.1 函数式编程最重要的是增强代码的重用性和可读性
4.2 定义/使用函数
def 函数名(参数):
函数体
返回值
函数定义要点:
def:表示函数关键字
函数名:函数的名称,函数的调用根据函数名
函数体:函数中的逻辑计算等
返回值:函数执行完毕后,可以给调用者返回数据
4.3 返回值
默认返回None
当函数执行到返回值时,函数将终止,返回值以后的代码不执行
4.4 参数
a. 普通参数
包括形式参数和实际参数
参数一一对应
|
1
2
3
4
5
6
7
8
|
#!/bin/env python# -*- coding:utf-8 -*-def shaw(msg): # msg为形式参数 if msg == 'sam': print('男神') else: print('傻帽')shaw('sam') # sam为实际参数 |
b. 默认参数(放在参数的最后)
|
1
2
3
4
5
6
7
8
9
|
#!/bin/env python# -*- coding:utf-8 -*-def shaw(msg,age = 24): # 在定义参数是,可以给参数定义值,叫默认参数 if msg == 'sam': print('男神,%s'%age) else: print('傻帽')shaw('sam',18) # 调用时,也可以指定参数shaw('sam') # 使用默认参数age=24 |
c. 动态参数
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/bin/env python# -*- coding:utf-8 -*-def func(*b): print(b)func(1,2,3) # 第一种执行方式a = [44,55,66] # 第二种执行方式func(a) func(*a)C:\Python35\python.exe F:/PyCharm/Python/PY_learn/lianxi.py(1, 2, 3)([44, 55, 66],) # 不加*,是把a看作为一个整体作为函数的一个参数(44, 55, 66) # 加*,是循环a中的每个元素,作为函数的参数 |
d. 动态参数
|
1
2
3
4
5
6
7
8
9
10
|
#!/bin/env python# -*- coding:utf-8 -*-def func(**b): print(b)func(name='shaw',age=24) # 执行方式一info = {'name':'shaw','age':24} func(**info) # 执行方式二C:\Python35\python.exe F:/PyCharm/Python/PY_learn/lianxi.py{'age': 24, 'name': 'shaw'}{'age': 24, 'name': 'shaw'} |
4.5 函数传参
函数在传递参数时,传的是引用

4.6 变量
局部变量
在函数体区块内定义的变量,仅在当前函数中生效
全局变量
在函数体外定义的变量,在所有函数中都生效
例如:
|
1
2
3
4
5
6
7
8
9
10
|
#!/bin/env python# -*- coding:utf-8 -*-name = ('shaw') # 全局变量def func(*args): name = ('sam') # 局部变量 if 2>1: print(name,args) else: print('haha')func(24) |
Python全栈开发day4的更多相关文章
- python全栈开发-Day4 列表
python全栈开发-Day4 列表 一.首先按照以下几个点展开列表的学习 #一:基本使用 1 用途 2 定义方式 3 常用操作+内置的方法 #二:该类型总结 1 存一个值or存多个值 只能存一个值 ...
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- Python全栈开发【面向对象】
Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础三】
Python全栈开发[基础三] 本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Python全栈开发【基础一】
Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
随机推荐
- 08void
void void修饰函数返回值和参数 如果函数没有返回值,那么应给将其声明为void 如果函数没有参数,应该声明其参数为void 不存在void类型的变量 void指针的意义 C语言规定只有相同类型 ...
- NIO源码阅读
自己对着源码敲一遍练习,写上注释.发现NIO编程难度好高啊..虽然很复杂,但是NIO编程的有点还是很多: 1.客户端发起的连接操作是异步的,可以通过在多路复用器注册OP_CONNECTION等待后续结 ...
- Async Programming - 1 async-await 糖的本质(1)
这一个系列的文章主要来讲 C# 中的语言特性 async-await 在语言层面的本质,我们都知道 await 是编译器进行了一个 rewrite,然而这个 rewrite 并不是直接 rewrite ...
- tony_iptables_01_linux下IPTABLES配置详解(转)
如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables - ...
- 给Hi3518e的Uboot添加UDP广播收发功能
基于个人兴趣,决定实现一个和方案公司提供的uboot收发广播的功能.记录笔记如下. SDK版本:Hi3518E_V100R001C01SPC081 1. 由于我手头的板子的Phy是RMII模式,因此先 ...
- disposition
该文为堕落的天使不再来原创.欢迎转载. 在尽心web开发时,可能遇到以下几种需求:(disposition配置) 希望某类或者某已知MIME 类型的文件(比如:*.gif;*.txt;*.htm)能够 ...
- 学习indy组件之一idhttp的使用方法
登录 注册 百度首页 新闻 网页 贴吧 知道 音乐 图片 视频 地图 百科 文库 经验 搜索答案我要提问 首页 分类 公社 知道行家 问医生 高质量问答 经验 个人中心手机知道开放平台 关于del ...
- 来自 Thoughtram 的 Angular 2 系列资料
Angular 2 已经正式 Release 了,Thoughtram 已经发布了一系列的文档,对 Angular 2 的各个方面进行深入的阐释和说明. 我计划逐渐将这个系列翻译出来,以便对大家学习 ...
- oracle 邮件发送
CREATE OR REPLACE PROCEDURE PRC_sendmail(p_receiver VARCHAR2, -- 邮件接收人 ...
- UML6大关系
1.继承关系(inherit) 空心三角+实线 2.实现(接口)关系 空心三角+虚线 3.聚合关系(Aggregation,弱拥有,A对象可以包含B对象,但B对象不是A的一部分) 空心菱形+实线箭头 ...