广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python3-2笔记
  • 635
分享到

python3-2笔记

笔记 2023-01-31 07:01:50 635人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

一.深复制和浅复制1.引用和赋值引用是一个值,指向某些数据列表引用是指向一个列表的值当你将列表赋给你一个变量时,实际上是将列表的‘引用’赋给了改变变量。id() : 在内存中一个独特的空间,相当于索引>>> a=[1,2,

一.深复制和浅复制
1.引用和赋值
引用是一个值,指向某些数据
列表引用是指向一个列表的值
当你将列表赋给你一个变量时,实际上是将列表的‘引用’赋给了改变变量。
id() : 在内存中一个独特的空间,相当于索引>>> a=[1,2,3]

b=a
id(a)
6699720
id(b)
6699720
b[0]=111
id(a)
6699720
id(b)
6699720
a
[111, 2, 3]
b
[111, 2, 3]
c=[1,2]
d=[1,2]
id(c)
7438408
id(d)
7438536
print(id(a)==id(b))
True

copy模块的copy()和deepcopy()
copy():复制第一层列表,完全指定在另外的空间,其他层次指定在同一片空间
deepcopy():完全复制过来,任何东西都不会被重复引用到同一个内存空间
浅复制机制:(copy)

import copy
a
[111, 2, 3]
c=copy.copy(a)
print(id(a)==id(c))
False
c[1]=333
c
[111, 333, 3]
a
[111, 2, 3]
a=[1,2,[3,4]]
d=copy.copy(a)
d
[1, 2, [3, 4]]
print(id(d)==id(a))
False
print(id(d[2])==id(a[2]))
True
d[2][0]=300
a
[1, 2, [300, 4]]
d
[1, 2, [300, 4]]

深复制:(deepcopy)

e=copy.deepcopy(a)
e
[1, 2, [300, 4]]
e[2][1]=4444
e
[1, 2, [300, 4444]]
a
[1, 2, [300, 4]]

二.控制流-条件判断

#if条件分支
age=eval(input('请输入你的年龄'))
#eval():自动转换为数据类型
if 18<=age<150:
print('你可以谈恋爱了!')
elif age>150:
print('妖姬')
else:
print('你没成年',end=',')
print('不能早恋')

案例一:输入一个数字,输出数字对应的星期几
num=eval(input('请输入一个数字:'))
if num==1:
print('星期一')
elif num==2:
print('星期二')
elif num==3:
print('星期三')
elif num==4:
print('星期四')
elif num==5:
print('星期五')
elif num==6:
print('星期六')
elif num==7:
print('星期日')
else:
print('输入数字不合法')

案例二:润年的判断(年份能被4整除但不能被100整除或者能被400整除)
num1=eval(input('请输入一个年份:'))
if (num1%4==0 and num1%100!=0) or num1%400==0:
print('是润年')
else:
print('不是闰年')

#年龄段的判断 (注意缩进)
age=eval(input('请输入你的年龄:'))
if 0< age<18:
pass (通过pass什么都不显示)
#print('你是个青少年')
else:
if 18<=age<30:
print('你是个年轻人')
else:
if 30<age<=50:
print('中年人')
else:
if 65<age<120:
print('老年人')
else:
print('你是个异类')

二、循环语句
1.while
i=0 # 如果是i=1呢
while i<100: #那么i=101
print('<<三国演义>> 我看了%d集'%(i+1))
i=i+1
print ('总有看完了,哭成狗了')

break : 如果遇到beak语句,就会马上跳出while循环语句
continue :如果程序执行遇到continue,就会马上跳回到循环开始处,重新循环条件求值。

#死循环
#陷入无限循环中
while True:
print('love you')

for循环和range()函数
利用在条件为true时,while循环就会继续循环(这是它的名称的由来)。
但如果你项让一个代码块执行固定次数,该怎么办?
可以通过for循环语句和range()函数来实现。
【for语法】
【for 关键词
一个变量名
in 关键字
调用range()方法,最多传入3个参数
冒号
在下一行开始,缩进的代码块(称为for子句)】

range()
某些函数可以用多个参数调用,参数之间用的逗号分开,range()
就是其中之一可以改变传递给range()的整数,来实现各种整数序列
包括从0以外的值开始range(start,end,step)返回列表
start 起始值,end 终止值,step 步进值 默认为1

for i in range(1,101):
print ('我跑了%d圈'%i)
print ('我瘦了')

for i in range(100):
print('我跑了%d圈'%(i+1))
print ('我瘦了')

案例一
输入一个数值,输出从0到这个数的所有奇数。并且每隔10个数换一行
num=eval(input('请输入一个数值:'))
for i in range(1,num+1,2):
print(i,end=' ')
#每隔10个数换一行
if (i+1)%20==0:
print()

案例二
已知大公鸡5元,母鸡3元,小鸡1元1个。(百元买百鸡)
sum=100
#i、j、k分别表示公鸡,母鸡、小鸡的个数:
for i in range(20):
for j in range(33):
for k in range(0,100,3):
if i+j+k==sum and i5+j3+k/3==sum:
print('公鸡买了%d只,母鸡买%d只,小鸡买了%d只'%(i,j,k))

案例三
已知第一个数为1,第二个数为1,并且满足等式f(x)=f(x-1)+f(x-2),请计算房(100)的值。(斐波那契数列)
list1=[1,1]
for i in range(100)
list1[i].append(list1[i-1]+list1[i-2])

print(list1[99])

图形输出
for i in range(1,9):
print(''i)

for i in range(9):
print(''(i+1))

U.异常捕获
语法:try .... except
异常:
python程序中遇到错误,或异常,意味着整个程序崩溃。我们不希望这发生在真实世界的程序中,相反,你希望程序
能检测错误,处理他们,然后正常运行。
捕获异常:
一旦产生异常,就捕获他,然后进行一定处理。
目的就是为了保证程序的正常执行,不会产生异常而终止程序继续实行。
list1=[0,1]
try:
print(list2[2])
except NameError as e:
print(e)
except IndexError as e:
print(e)
except BaseException as e:
print(e)
print('程序正常运行')
print('程序正常运行')

函数:
def hello():
print('hello')
print('TOM!!')
print('Hello there')

hello()
hello()
hello()

a.第一行是def语句,它定义了一个名为hello()函数;
b.def语句之后的代码块是函数体,这段代码在函数调用是执行的
c.函数之后的hello()语句是函数调用。(函数调用就是函数名跟括号)

def hello(name):
print('hello,' +name)

hello('TOM')
hello('xp')
a.在这个程序的hello()函数定义中,有一个名为name的变元;
b.变员是一个变量,当函数调用时,参数就存放在其中。
c.保存在变元中的值,在函数返回就丢失了。

返回值和return语句
如果调用len()函数,并向他传入像‘hello’这样的参数调用就求值为整数5,这是传入的字符串长度
一般来说,函数调用求值的结果,成为函数的返回值。

a.return语句包含以下部分
.return 关键字
.函数应该返回的值或表达式
b.如果在return语句中使用了表达式,返回值就是该表达式求值的结果。
c.如果使用不带值得return语句(也就是中有return本身),那么久返回None.
1
def hello(name):
return '再见'
print(hello('周老师'))
2.
def hello(name):
return 或者pass
print(hello('周老师'))

摇奖小程序
定义一个函数,它根据传入的数学参数,返回一个同的字符串

步骤:
1.导入随机数模块(import random)
2.构建一个函数体
3.产生随机数
4.调用函数
#导入随机数模块
import random
#产生一个1-9随机真正整数
a=random.randint(1,9)
#print(a)
def Answer(num):
if num==1:
return '一等奖'
elif num==2:
return '二等奖'
elif num==3:
return'三等奖'
elif num==4:
return '参与奖'
else:
return '谢谢参与'
print(Answer(a))

lambda表达式定义(也称为匿名函数)
a.lambda只是一个表达式,函数体比def简单
b.lamdba主体为一个表达式,不是代码块,仅仅能在lambda表达式中封装有限的逻辑进去。
(1)无参数形式
a=lambda:'ixp'
print (a())
(2)有参数形式:
a=lambda x:x**2
print (a(10))
(3)取出x的每一项,2倍数都部遍历出来
b=lamdba x:[i for i in x if i%2==0] #生成器
print b([1,2,3,4,5,6,])

#生成器
c=lambda x:[i for i in x if i%2==0]
#取出X的每一项,2的倍数全部遍历出来
print(c([1,2,3,4,5,6]))

Filter(),map(),reduce()
Python内置了一些特殊函数,这些函数很具有python特性。
可以让代码更加简洁。filter,map,reduce三个函数比较类似,都是应用于序列的内置函数,常见的序列包括list、tuple、str.
通常与lambda表达式连用。

1.filter 函数
filter 函数会对指定序列执行过滤操作,批量提取。
filter 函数的定义:
filter (function or None,seq) -->list,tuple,or string
filter 函数会对序列参数sequence中的每个元素调用function函数,最后返回的结果包含调用结果为true的元素。

案例一:
取出列表里的能被3整除的元素
foo=[2,18,9,22,17,24,8,12,27]
print filter(lambda:xx%3==0,foo )

2.map函数
map函数会根据提供的函数对指定序列做批量处理。
map函数的定义
map(function,seq,[seq,...]) >list
通过定义可以看到,这个函数的第一个参数是一个函数,剩下的参数是一个或多个序列。
function可以理解为是一个一对一或多对一的函数,map的作用是以参数序列中的每个元素调用function函数,返回包含每次function函数
返回值得list.

案例二:
1.对一个序列中的每个元素进行平方运算:
map(lambda x:x**2,[1,2,3,4,5])

#map
b=map(lambda x:x**2,[1,2,3,4,5])
print (list(b))

2.对两个序列中的元素依次求和。
map(lambda x,y:x+y,[1,3,5,7,9],[2,4,6,8,10])
注意:在参数存在多个序列时,会依次以每个序列中相同位置的元素做参数调用function函数。

c=map(lambda x,y:x+y,[1,3,5,7,9],[2,4,6,8,10])
print(list(c))

3.当函数为None时。
map(None,[1,3,5,7,9],[2,4,6,8,10])
c=map(None,[1,3,5,7,9],[2,4,6,8,10])
print(c) (只能这样类型输出)

reduce函数
reduce函数会对参数序列中元素进行总体计算。
reduce函数的定义;
reduce(fuction,seq,initial)->value
function参数是一个有两个参数的参数,reduce依次从seq中取一个元素,和上次调用function
的结果做参数再次调用function.
第一次调用function时,如果提供inital参数,会以seq中的第一个元素和
inital作为参数调用function,否则会以序列seq中的前两个元素作参数调用function.
#reduce批量计算
#python3要引入模块functools
案例三:
1.reduce(lambda x,y:x+y,[2,3,4,5,6],1)
结果为21(((((1+2)+3)+4)+5)+6))
import functools
d=functools.reduce(lambda x,y:x+y,[2,3,4,5,6],1)
print(d)
#Y=1,x=2 x=x+y
#x=3,y=3
#x6,y=4
#x10,y=5
#x=15 ,y=6
#x=21
2.reduce(lambda x,y:x+y,[2,3,4,5,6])
结果为21(((((1+2)+3)+4)+5)+6))

import functools
d=functools.reduce(lambda x,y:x+y,[2,3,4,5,6])
print(d)
#Y=2,x=3
#x=5,y=4
#x9,y=5
#x14,y=6
#x=21
#否则会以序列seq中的前两个元素作参数调用function.
function不能为None

小结:
Filter 函数
语法:Filter(funtion or None.seq)
应用:对数据进行批量提取

map函数
语法:map(funtion,seq,[seq,...])
应用:对数据进行批量提取

Reduce函数
语法:reduce(funtion,sequence,[initial])
应用:对数据进行总体计算

--结束END--

本文标题: python3-2笔记

本文链接: https://www.lsjlt.com/news/192326.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python3-2笔记
    一.深复制和浅复制1.引用和赋值引用是一个值,指向某些数据列表引用是指向一个列表的值当你将列表赋给你一个变量时,实际上是将列表的‘引用’赋给了改变变量。id() : 在内存中一个独特的空间,相当于索引>>> a=[1,2,...
    99+
    2023-01-31
    笔记
  • python3学习笔记(2)----p
    1、python3的基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。等号(=)用来给...
    99+
    2023-01-31
    学习笔记
  • python3 笔记
    .1# 数的定义:# 格式化: format ---字符串拼接 %d,%f,%s 格式化输出 str()、int()、float()强转类型函数 #age=int(input('请输入您的年龄:'))#print ( age-1) ...
    99+
    2023-01-31
    笔记
  • 【MySQL】笔记(2)-
    分组函数一般都会和group by联合使用,这也是为什么它被称为分组函数的原因,并且任何一个分组函数(count sum avg max min)都是在group by语句执行结束之后才会执行的,当一条s...
    99+
    2019-08-25
    【MySQL】笔记(2)-
  • 【JDBC】笔记(2)-
    1、需求:模拟用户登录功能的实现;2、业务描述:程序运行的时候,提供输入的入口,可以让用户输入用户名和密码;用户输入用户名和密码后,提交信息,java程序收集到用户信息..... 一.实现功能...
    99+
    2020-11-05
    【JDBC】笔记(2)-
  • python3学习笔记
    好久不用python,努力捡起来ing python3语法 字符串 repr()把其他类型变量转换为字符串 ord()把单个字符转换为相应的ascii码 int()把其他进制的“字符串”转换为十进制 int(str,n...
    99+
    2023-01-31
    学习笔记
  • python3 学习笔记
    本人很少写 python 代码, 一般都是用 go 的, 去年时用 python 写过一些收集系统信息的工具, 当时是边看手册边写的. 如今又要用 python 来写一个生成 xlsx 的工具, 就又需要查看手册了, 至于为什么不用 g...
    99+
    2023-01-31
    学习笔记
  • 2018-12-3python笔记(2.
    python的强大之处在于它有很多的模块和方法比如 string os sys 模块 模块是Python组织代码的基本方式。一个Python脚本可以单独运行,也可以导入到另一个脚本中运行,当脚本被导入运行时,我们将其称为模块(module)...
    99+
    2023-01-31
    笔记 python
  • Python学习笔记(2)
    Unicode字符串: GB2312编码为表示中文产生 python内部编码是unicode编码Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填0 就可以以Unicode表示的字...
    99+
    2023-01-31
    学习笔记 Python
  • Python学习笔记(2)
    Python开发IDE:pycharm   ,eclipse 快捷键:Ctrl+?整体注释 一·运算符   +(加)   -(减)  *(乘)   /(除)  **(幂)  %(余)   //(商)     判断某个东西是否在某个东西里边...
    99+
    2023-01-30
    学习笔记 Python
  • docker笔记2-docker介绍
        docker是基于go语言实现的云开源项目。    docker的主要目标是“Build,Ship and Run Any App,Anywher...
    99+
    2023-06-04
  • JAVA学习笔记- - - day 2
     💕前言:作者是一名正在学习JAVA的初学者,每天分享自己的学习笔记,希望能和大家一起进步成长💕 目录  💕前言:作者是一名正在学习JAVA的初学者,每天分享自己的学习笔记,希望能和...
    99+
    2023-09-04
    学习
  • python进阶笔记【2】 --- 一
    我是在学习cs231n的assignment3的课程,发现里面的代码大量频繁出现了这个库,那我就很奇怪了,为什么有个future这个奇怪名字的库会出现呢?到底这个库又有什么用?下面就让我为你揭开。 总所周知,python3.x和pyt...
    99+
    2023-01-31
    进阶 笔记 python
  • 【gcc】RtpTransportControllerSend学习笔记 2
    在【gcc】RtpTransportControllerSend学习笔记 1 中, 跟着 大神ishen 从RtpTransportControllerSend 到cc-controller对gc...
    99+
    2023-10-07
    学习 笔记
  • python3 爬虫笔记(一)beaut
    很多人学习python,爬虫入门,在python爬虫中,有很多库供开发使用。 用于请求的urllib(python3)和request基本库,xpath,beautiful soup,pyquery这样的解析库。其中xpath中用到大量的...
    99+
    2023-01-30
    爬虫 笔记 beaut
  • python3图片处理(笔记)
    本次的基础:Image图片基本处理库和ImageFilter滤镜库 一、图片处理 from PIL import Image,ImageFilter # 1、打开图片 img = Image.open(r'E:\python\mate...
    99+
    2023-01-31
    图片处理 笔记
  • Python3学习笔记01-Python
    1. 下载 python-3.6.3 下载地址:https://www.python.org/ftp/python/3.6.3/python-3.6.3-amd64.exe安装 python-3.6.3安装的第一个界面注意选中“Add P...
    99+
    2023-01-31
    学习笔记 Python
  • python3学习笔记(1)----基
    一、python3的基本语法 1、缩进统一(1个tab或者4个空格)。 for i in range(10): print (i) 2、标识符的第一个字母必须是字母(大小写字母)或者下划线,其他部分可以有字母和...
    99+
    2023-01-31
    学习笔记
  • Linux学习笔记 Day 2~3
    继续整理周末课程的Linux学习笔记。 vim编辑器 最受欢迎的是emacs,vim是vi的增强版本,特点是编辑内容时有颜色变化。命令:vim /etc/passwd 三种模式: 1. 普通模式-->可视模式 2....
    99+
    2023-01-31
    学习笔记 Linux Day
  • 数据库个人笔记(2) -
    **表的创建和操作** - 界面式操作表 > 创建表:>第一步:打开数据库,在‘对象资源管理器’中展开‘数据库’,右击 ‘pxscj’ 数据库菜单下的 ‘表’ 选项,在弹出的快捷菜单中选择 ‘新建表’ 菜单项,如图>     >第二步...
    99+
    2016-06-19
    数据库个人笔记(2) -
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作