Python全栈开发day4

1python三元运算

实现方法:

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 copy

a = ‘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.py

17386440 17386440 17386440 17386440

# # #

b = 68

n = 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.py

1363081104 1363081104 1363081104 1363081104

3.2 其他数据类型

对于字典、元祖、列表而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。

a. 赋值(只是创建了一个变量,该变量指向了原来的内存地址)


1

2

3

4

5

6

7

8

#!/bin/env python

#-*- coding:utf-8 -*-

import copy

info = {‘k1‘:‘shaw‘,‘k2‘:‘sam‘,‘k3‘:[‘shaw‘,24]}

info2 = info

print(id(info),id(info2))

C:\Python35\python.exe F:/PyCharm/Python/PY_learn/lianxi.py

6817416 6817416

b. 浅拷贝(在内存中,仅仅另创建了第一层数据,即仅仅另copy了一份最外层的数据)


1

2

3

4

5

6

7

8

9

10

#!/bin/env python

#-*- coding:utf-8 -*-

import copy

info = {‘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.py

17237640 17728648

17667160 17667160    # 第二层内存指向同一个地址,表示第二层并没有复制

c. 深拷贝(在内存中将所有数据重新创建了一份。除了最里面一层,由‘ ‘决定的)


1

2

3

4

5

6

7

8

9

10

11

12

#!/bin/env python

#-*- coding:utf-8 -*-

import copy

info = {‘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.py

5310216 11913608

5310088 12344584

4673488 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 copy

a = 298

b = 298

print(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.py

3362768 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 变量

局部变量

在函数体区块内定义的变量,仅在当前函数中生效

全局变量

在函数体外定义的变量,在所有函数中都生效

例如:


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)

时间: 2024-11-08 22:25:03

Python全栈开发day4的相关文章

Python全栈开发【基础三】

Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 1 def 函数名(参数): 2 3 ... 4 函数体 5 ... 6 返回值 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算 参数:为函数体提供数据 返回值:当函数执行完毕后,可以给调用者返回数据. 总结使用函数的好处: 1.减少代码重用 2.保持一致性,易维护

Python全栈开发【第一篇】:初识Python

Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与while循环练习题 基本数据类型前引 Python 的种类 Cpython Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上. Jyhton Python的Java实现,Jython会将Pyth

Python全栈开发

Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator),装饰器的功能非常强大,但是理解起来有些困难,因此我尽量用最简单的例子一步步的说明这个原理. 1.不带参数的装饰器 假设我定义了一个函数f,想要在不改变原来函数定义的情况下,在函数运行前打印出start,函数运行后打印出end,要实现这样一个功能该怎么实现?看下面如何用

Python全栈开发【基础二】

Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 编码与进制转换 Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 1 class int(object): 2 """ 3 int(x=0) -> integer 4 int(x, base=10) -&g

python全栈开发目录

python全栈开发目录 linux命令 初识python python基础数据类型 函数编程.set.深浅拷贝 内置函数 文件操作 装饰器 迭代器和生成器 常用模块 初识类和对象 类和对象(进阶) 反射 异常处理 socket.IO多路复用 线程.进程.协程 HTML CSS JavaScript DOM文档操作 jQuery实例 web框架本质 Tornado mysql基础 mysql进阶 ..... 基本算法 递归--二分法查找 冒泡排序 更多 线程池

Python全栈开发【基础四】

Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 匿名函数 lambda表达式:对于简单的函数,存在一种简便的表示方式,即lambda表达式 1 #这段代码 2 def calc(n): 3 return n**n 4 print(calc(10)) 5 6 #换成匿名函数 7 calc = lambda n:n**n 8 print(calc(10)) 匿名函数主要是和其它函数搭配使用 举例: 1 ########

自学Python全栈开发第一次笔记

我已经跟着视频自学好几天Python全栈开发了,今天决定听老师的,开始写blog,听说大神都回来写blog来记录自己的成长. 我特别认真的跟着这个视频来学习,(他们开课前的保证书,我也写了一份,哈哈哈...)我现在是准大学生,准备学习编程,日后做一个程序员,哈哈哈.听说程序员很苦逼,不过貌似挣得也很多啊.并且我貌似也只喜欢计算机这个方面,所以我想在这个行业发光. 前些天学习了一些Linux一些命令: pwd     查看你当前所在的目录  /root=计算机/E盘 /    是根目录 cd(ch

Python 全栈开发:python列表List

列表 列表是python中经常使用的数据类型,用于存放多个值. 表现形式:在[ ]内用逗号分隔,可以存放n个任意类型的值 eg: #单一类型 users=['yangli','yite','fixd'] #多类型,列表嵌套 users=['room01',['yangli',20,'音乐'],['yite',20,'篮球'],] 列表常用方法 和 函数 方法 函数 常用的操作 eg: len(list) #len(list) 计算列表的长度 ls = ['a','b','c','d'] leng

Python 全栈开发:python元组tuple

元组 什么是元组:"元组就是一个不可变的列表" (并不是列表,只是为了便于记忆) 用途:用于存放多个值,只能读不能二次赋值 表现形式:小括号()中间以逗号分割各个元素 eg: tuples = ('a','b','c','d') 元组常用的操作 生成一个简单的元组 tuples = tuple(range(5)) print(tuples) #结果(0, 1, 2, 3, 4) len(tuple) #计算元组长度 tuples = (0, 1, 2, 3, 4) print(len(