Python 基础学习 (第三周)

集合的操作

集合是一个无序的, 不重复的数据组合, 它的主要作用如下:

去重, 把一个列表变成集合, 就自动去重了

关系测试, 测试两组数据之间的交集, 差集, 并集等关系

集合的写法

list_1 = set([1, 3, 4, 6, 7, 12, 5])

集合的关系list_1=set([1,3,5,7,4,9,10])

list_2=set([1,8,10,15,12])

集合的交集

print(list_1.intersection(list_2)) 等价于 print(list_1 & list_2)

--->{1, 10}

集合的并集

print(list_1.union(list_2)) 等价于 print(list_1 | list_2)

-->{1, 3, 5, 7, 8, 4, 9, 10, 15, 12}

集合的差集

print(list_1.difference(list_2)) 等价于 print(list_1 - list_2)

-->{3, 5, 7, 4, 9}

集合的子集

print(list_1.issubset(list_2))

list_1 是否是 list_2 的子集

集合的父集

print(list_1.issuprset(list_2))

list_1 是否是 list_2 的父集

集合的对称差集

print(list_1.symmetric_difference(list_2)) 等价于 list_1 ^ list_2

-->{3, 5, 7, 4, 9, 8, 15, 12}

集合的其他函数用法list_2.isdisjoint(list_3)#两个无交集返回 true

list_1.add(4)#集合的添加

list_1.remove(4)#集合的删除, 注意当集合中没有该元素会报错所以我们更多用下这个删除

list_1,discard(4)#删除, 没有该元素则什么都不操作

文件的操作

文件的操作流程

1. 打开文件, 得到文件句柄并赋给变量一个值

2. 通过句柄对文件进行操作

3. 关闭文件f=open("guangzhou","r",encoding="utf-8")#文件句柄

data=f.read()#f.readline() 读取一行

f.close()

这样就把整个文件给读出来了, 假如 read() 两遍, 那么第二个 read() 会读出空的内容, 因为当第一个 read() 执行完成后, 这个时候光标位置就处在文件的结束位置, 再进行读取的时候也就读不到内容了.

文件的操作模式

r: 读模式, 默认是读模式

open("guangzhou", "r", encoding = "utf-8")

w: 写模式, 打开文件时时创建一个文件, 也就是原来的文件没有了

open("guangzhou", "w", encoding = "utf-8")

a: 追加模式

open("guangzhou", "a", encoding = "utf-8") 只是不覆盖文件, 在文件的后面追加内容, 这个模式还不支持读 read

r+: 读写模式, 以读和追加的方式来读写, 不管光标位置在哪, 都在最后面写

w+: 写读模式, 只能在最后面写, 不能写到中间, 这是硬盘机制

a+: 追加读

rb: 二进制读, 用途网路传输, 读取音频视频文件

wb: 二进制写

文件从一个文件读取并改变内容保存到另外一个文件f=open("guangzhou","r",encoding="utf-8")

f_new=open("guanghzou3","w",encoding="utf-8")

# 循环读取文件, 且这种效率最高, 比 readlines() 高好多

forlineinf:

if"人在广东已经漂泊十年"inline:

line=line.replace("人在广东已经漂泊十年","Jason 在广东已经漂泊两年")

f_new.write(line)

f.close()

f_new.close()

文件的其他方法f=open("guangzhou","r",encoding="utf-8")

f.tell()#返回光标的位置, 该返回的位置是字符的位置

f.seek(0)#回到某个光标位置

flush 方法

当我们在以写文件的方式打开一个文件的时候, 我们执行完一条语句 write 并不一定写到了硬盘上, 它是先存到了内存中, 当内存达到一定大小的时候才开始往硬盘上面写, 这是因为内存的写速度要比硬盘快的多, 但是当某些特定条件下需要实时刷新的话, 我们就要用 flush 进行强制刷新, 比如进度条, 下面的例子:importsys,time

foriinrange(20):

sys.stdout.write("*")

sys.stdout.flush()

time.sleep(0.1)

自己可以执行下看一下

with 语句

为了避免文件打开后忘记关闭, 可以通过管理上下文, 即:

with open("guangzhou", "r") as f:

2.7 版本之后也支持同时对多个文件管理, 即:

with open("guangzhou", "r") as f, open("guangzhou2", "r") as f2:

字符编码与转码

字符集发展史

中国字符集发展: gb2312--->gb18030-->gbk

国际字符集发展: ascii(英文占用一个字节, 不能存中文)-->unicode(英中占用两个字节)-->utf-8(中文占用 3 个字节, 英文一个字节)

函数与函数式编程

函数的定义方法deftext(x):

"The function definitions"

x+=1

returnx

函数可以返回多个值, 用元组来返回, 比如 return 1, 3, "hello", ["a", "b", "c"], {"name":"Jason"} 返回其实是 (1, 3, "hello", ["a", "b", "c"], {"name":"Jason"})

函数增加参数deftext(x,y):

print(x,y)

调用方式:

1.text(1, 2) -->1,2 位置参数调用

2.text(x = 2,y = 1) -->2,1 关键字参数调用3.text(2,y=1)-->2,1

4.x=1,

y=2

text(x,y)-->1,2

5.text(1, x = 2) 报错, x 得到了多个值

6.text(x = 2, 1) 报错

综上所述, 当既有位置参数又有关键字参数的时候, 关键参数的后面不能有位置参数, 且不能给多个参数赋值

函数的默认参数

1. 参数固定deftext(x,y=2):

print(x,y)

2. 参数不固定, 接受 N 个位置参数输出用元组deftext(*args):

print(args)

text(1, 2, 3, 4, 6) 或者 text(*[1, 2, 3, 4, 6])

-->(1, 2, 3, 4, 6) 元组

3. 接受 N 个关键字参数输出字典方式deftext(**kwargs):

print(kwargs)

text(name="Jason",age=24)-->{'name':'Jason','age':24}

这些参数可以混合使用, 比如:deftext(name,*args,**kwargs):

print(name)

print(args)

print(kwargs)

text("Jason", 1, 2, 5, name = "Jason", age = 24)-->Jason

(1,2,5)

{'name':"Jason",'age':24}

函数局部变量与全局变量

在子程序中定义的变量为局部变量, 在程序的一开始定的变量为全局变量, 全局变量作用域整个程序, 局部变量作用域定义该变量的子程序, 当全局变量与局部变量同名时, 在定义局部变量的子程序中, 局部变量起作用, 在其他地方全局变量起作用.

在子程序中, 变量字符串对全局变量的改变对外面没影响, 但是, 当全局变量为列表字典集合的时候, 这个时候改变会影响整个程序的

高阶函数

变量可以指向函数, 函数的参数能接受变量, 那么一个函数就可以就收另一个函数作为参数, 这种函数称之为高阶函数.

来源: https://www.cnblogs.com/jsaon-li/p/8912623.html

python 第三周测试答案_Python 基础学习 (第三周)相关推荐

  1. python初体验-hello world答案_Python基础学习之Python初体验

    一.前期准备对于python的学习,首先的有一个硬件电脑,软件python的运行环境.说了一句废话,对于很多初学者而言,安装运行环 境配置环境变量的什么的各种头疼,常常在第一步就被卡死了,对于pyth ...

  2. python用户输入算式并计算_Python基础学习之计算和算式

    今天小编要跟大家分享的文章是关于Python基础学习之计算和算式.正在学习Python相关知识的小伙伴们来和小编一起看一看吧,希望能够对大家有所帮助! Python 具有执行计算的能力. 直接在 Py ...

  3. python编程语言符号大全_Python基础学习篇章三分析

    一. Python对象类型 1. 对象是Python最基本的概念,一个Python程序可以分解为模块.语句.表达式.和对象.它们的关系如下:(1)程序由模块构成 (2)模块包含语句 (3)语句包含表达 ...

  4. python中的点的作用_Python基础学习中关键点的作用(三),python,重点,之,函数,3

    函数学习之匿名函数 定义: 匿名函数是指在python中使用lambda所创建函数,称之为匿名函数. 特点: 创建函数不再使用def创建,而是使用lambda关键字创建一个形式主义的函数. 匿名函数的 ...

  5. python中字符串函数的作用_python 基础学习笔记(2)---字符串功能函数

    **上一篇写到了,基本的数据类型,今天重点来讲一下字符串的功能函数** 回顾一下上篇的内容: 一.int 整型,在python 3 中与long型合并 可以达到 -922337203685477580 ...

  6. python中abc属于字符串吗_Python基础学习:字符串

    Python 版本: 3.6.2 操作系统: Windows 作者: SmallWZQ 在 Python 中,字符串也是一种数据类型.相比其它数据类型,字符串算是比较复杂的.为 何呢?因为字符串不仅包 ...

  7. python列表元素替换的数据结构_Python基础学习数据结构(第2讲:列表;第2讲:列表创建、添加元素、插入元素、替换元素、删除元素、其他常用方法和列表派生),第二,主讲,追加,推导,式...

    列表也是一种序列结构,与元组不同,列表具有可变性,可以追加.插入.删除和替换列表中的元素. 1.创建列表 创建列表可以使用list([iterable])函数,或者用中括号[ ]将元素括起来,元素之间 ...

  8. python语言程序设计网课答案-真不错!大学慕课Python语言程序设计章节测试答案...

    2020年智慧树网课答案为您详细解读azMisb真不错!大学慕课Python语言程序设计章节测试答案的详情,Research Essay是国外大学常见的Assignment形式,Research Es ...

  9. Python基础学习笔记三

    Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...

  10. Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python

    Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...

最新文章

  1. 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | DexFile.java 对应的 dalvik_system_DexFile.cc 本地函数分析 )
  2. 部分和问题 (dfs搜索 尺取)
  3. python epoll 并发_Python语言之python并发原理(阻塞、非阻塞、epoll)
  4. 【IT资讯】Linux Kernel 5.8 正式版发布
  5. Java 对象引用以及对象赋值
  6. mysql group 分页_【MySQL】条件查询之排序聚合分组分页查询
  7. ASP.NET Web API中的返回值
  8. 厉害了!牛顿法深度学习优化器,效果比肩SGD和Adam
  9. 枚举算法:求解不等式
  10. python什么学历能学_自考学历找工作,钱少点也没关系?
  11. Raspberry Pi 构建一个飞机观察器
  12. You have tried to change the API from what has been previously approved
  13. 华南理工大学控制工程考研经验分享
  14. Bridge的父应用程序不是现用应用程序
  15. ckeditor5 用法
  16. 运筹学4个人完成三项工作_【用人话讲运筹学】十一、指派问题
  17. Java项目:ssm在线答题系统
  18. tags与categories
  19. win7工作组计算机无法连接打印机,win7无法访问共享打印机怎么解决
  20. 红黑二叉树详解及理论分析

热门文章

  1. intellij idea 的常用有用快捷键
  2. TOMCAT如何配置域名,可以用本地服务进行测试
  3. 请慎用ASP.Net的validateRequest=false属性
  4. 数据探索很麻烦?推荐一款史上最强大的特征分析可视化工具:yellowbrick
  5. 数据分析五板斧与里面的屠龙刀(上)
  6. 趣图:他居然在前端写业务逻辑!
  7. 【bzoj1085】【SCOI2005】【骑士精神】
  8. 解决 git branch -a 无法全部显示远程的分支,只显示master分支
  9. ZOJ 3229 有上下界最大流
  10. 不用代码隐藏自定义列表