wxg学习笔记-老男孩day3-程序员宅基地

字符串:不可在原内存上修改

一、集合

1. 集合的主要功能:

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

(2)关系测试:测试两组数据之间的交集、差集等。

集合是无序的,所以也没有位置下标。

2.  集合操作

A.intersection(B) ——求交集,等价于A&B

A.union(B)——求并集,等价于A|B

A.difference(B)——求差集(A中有,B中无)等价于A-B

A.issubset(B)——判断A是不是B的子集 等价于  A<=B

A.issuperset(B)——判断A是不是B的父集,等价于A>=B

A.symmetric_different(B)——求A、B交集的补集,等价于A^B

A.isdisjoint(B) 判断A和B是否无交集

A.add(项)在集合中添加一项

A.update([10,37,42])添加多项

A.remove(项),删除项

A.pop(项),随机删除一项并返回该项。

A.disgard(项),项存在就删除,不存在就跳过

 

二、文件操作

1.文件打开格式1

 

此种方式打开后不会自动关闭,除非程序运行结束。所以需要人为关闭,即加上f.close()语句

2.文件打开格式2

1 with open('文件名','打开方式',编码方式) as f:
2 
3 同时打开多个:
4 with open('log1') as obj1,open('log'2)as obj2:

 

3.文件的打开方式:

r:只读

w:只写,若已经有内容则擦除再写

rb:只读二进制

wb:只写二进制

a:在文件内容末尾增加内容

r+:读写,= a+r

w+:写读,= w+r

a+:追加读写

 

3.文件读取:

将整个文件读取为字符串:

data = f.read()

读完后,f内指针指向最后,若此时再次读取:

data2 = f.read()

由于指针已经在最后,所以data2没有内容。

 

4.读取文件的循环方式:

1 for line in f:
2     print(line)

其中f不是列表,二是迭代器,想将文件存为列表需要写逐行存入列表语句。

f.tell()——返回文件句柄指针所在位置

f.read(数)——可读指定个数字符,并将指针停留在相应位置

f.seek()将指针返回到特定位置,一般是返回到开头,即默认0.

f.encoding ——返回编码规则

f.truncate(数)——从开始截取指定数量的内容,多出部分删除。

f.flush()——将内容由内存强制(实时)刷到硬盘上

打印进度条

 

三:字符编码(待完善)

不同字符编码之间相互转换都要经过unicode,python 2.x中默认的编码方式是ascii,故要在开头声明使用utf-8才能正确显示中文,python3.x中默认的编码方式是unicode,故不需要声明。

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

四、函数

1. 面向对象:以“类”为特征

    面向过程:以“过程”为特征

    函数式编程:以“函数”为特征,“函数式”指的是一种方法论。

 

过程和函数的区别:

过程没有返回值(仅定义一些操作),函数有返回值(return),python中过程就是没有返回值(return none)的函数。

使用函数的优点:1.代码重用,2.保持一致性,3.可扩展性

 

2. 返回值:函数返回一个执行结果,便于下一步操作。

python可返回多个值:

return 1,'a','weng',['a','b']

当返回多个值时,其实返回的是一个元组。

返回值数量=0:返回none

返回值数量=1:返回object

返回值数量>1:返回tuple

注:函数中return之后的语句得不到执行,即函数执行到return就停止。

 

3.函数调用:

位置参数:位置实参按照顺序传给位置形参

 

关键字参数:关键字参数可不按顺序调用

test(y=2,x=1)

关键字参数和位置参数混用时,关键字参数必须放在位置参数之前,同时应该避免关键字参数和位置参数重复比如

test(1,x=2)(两个参数都传给了x)

默认参数:调用函数时,若不传入则使用默认值。默认参数在调用时可以不写。

 

 可变参数:当参数个数不确定的时候,在定义函数时,采用“*参数名”(一般是*args)的形式作为可变参数,可以接收若干个不同的实参。

 

键-值对参数:**kwargs

实参以:key=value的形式出现,被当做键值对处理为一个字典

当出现多类型参数,编写顺序为:位置参数——默认参数——可变参数:

 

五、局部变量和全局变量

局部变量:子程序(往往是函数)中定义的变量,只在子程序内起作用,子程序就是该变量的作用域。

全局变量:要在第一层定义,对于Int和str类的全局变量,不能通过局部变量修改,其他类型如list等则可以通过局部变量,即函数内部修改。

 在函数中修改全局变量的方法:

 六、

递归函数:函数在内部调用本身

1. 特征:(1)必须有一个明确的结束条件 (2)每进入更深一层递归时,问题规模相比上一层都应有减少(3)递归效率不高,容易栈溢出。

 

七、

高阶函数:变量可以指向函数,函数的参数能接收变量,一个函数接收另一个函数最为参数,则为高阶函数。

高阶函数主要分为两类:(1)把函数名当做参数传给另外一个函数

(2)返回值中包含函数名

 1 import time
 2 def bar():
 3     time.sleep(2)
 4     print("in the bar")
 5 
 6 def test2(func):
 7     print(func)
 8     return func #返回func的内存地址,即原本bar()的地址
 9 bar = test2(bar)
10 bar()

 八、嵌套函数

在函数定义中定义新函数。

def fool():
    print('in the foo')
    def bar():
        print('in the bar')

bar()是在fool()中定义的函数,执行fool()时,就会定义这个bar(),但是bar()不会在执行fool时执行,因为执行fool()只是定义bar()。要执行bar()需要在fool()中返回bar()地址。然后执行。

转载于:https://www.cnblogs.com/wengxinguang/p/7246623.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30332705/article/details/98892027

智能推荐

css--提示工具-程序员宅基地

文章浏览阅读72次。一、提示工具1、上提示工具代码如下 body{ margin:0; text-align:center; } .tooltip{ position:relative; display:inl..._color: #ffffff; background: #3c9cff; padding:5px 0; border-radius: 5px; at u

GRACE RL06版本的数据预处理_gramat处理rl06-程序员宅基地

文章浏览阅读5.2k次,点赞6次,收藏62次。function GRACE_RL06_preprocessing(controlfile_path)% Read the Control Filefid=fopen(controlfile_path,'r');num_file = fscanf(fid,'%d',1);radius_filter = fscanf(fid,'%d',1);destrip_method ..._gramat处理rl06

Ceph分布式存储实战:从0搭建一个存储集群,并把块设备镜像映射到CentOS 7系统上的步骤_映射到centos镜像中-程序员宅基地

文章浏览阅读1.2k次。本文配套视频和笔记:Ceph分布式存储实战(Ceph快速上手)B站视频在线观看链接:【千锋教育】Ceph分布式存储技术教程(进阶到实战)百度网盘链接:2020全新_Ceph分布式存储技术-进阶到实战 笔记+资料+视频.zip 提取码: xry9文章目录1. 分布式存储系统理论1.1. 认识分布式存储1.2. 分布式存储的特性1.2.1. 可扩展1.2.2. 低成本1.2.3. 高性能1.2.4. 易用1.2.5. 易管理1.3. 分布式存储的挑战和所涉及的技术1.4. 存储分类1.4.1. 本地_映射到centos镜像中

断言NSAssert()和NSParameterAssert区别和用处_nsassert 没有终止app-程序员宅基地

文章浏览阅读719次。NSAssert和assert是断言,主要的差别是assert在断言失败的时候只是简单的终止程序,而NSAssert会报告出错误信息并且打印出来.所以尽管的使用NSAssert,可以不去使用assert.iOS中用的最多的是两对断言, NSAssert/NSCAssert 和 NSParameterAssert/NSCparameterAssert. 要知道他们的区别,我们先来看看他们_nsassert 没有终止app

ProGuard对java jar包实现混淆加密_proguard混淆jar包-程序员宅基地

文章浏览阅读1.9w次。随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)转自:http://blog.csdn.net/xinke0802/article/details/45438749 Java代码编译后生成的.class 中包含有源代码中的所有信息(不包括注释),..._proguard混淆jar包

ubuntu查看系统信息命令_ubuntu chakanxitongdaili-程序员宅基地

文章浏览阅读7.3k次,点赞4次,收藏8次。今天因老板要求,需要查看服务器中的配置信息,但是对ubuntu命令不是很熟悉,所以就网上进行的查阅,顺便做些笔记查看处理核信息 cat /proc/cpuinfo |grep “model name” && cat /proc/cpuinfo |grep “physical id” Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息,此命令是在/proc/cpuinfo文件_ubuntu chakanxitongdaili

随便推点

软件维护_软件系统维护公告怎么写-程序员宅基地

文章浏览阅读1.5k次。软件维护软件维护主要是指根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改,修改时应充分利用源程序。修改后要填写《程序修改登记表》,并在《程序变更通知书》上写明新旧程序的不同之处。目录1软件维护类型2改正性维护3适应性维护4完善性维护5预防性维护_软件系统维护公告怎么写

在xml文件中配置数据库url需要带多个参数的时候IDE提示The reference to entity "characterEncoding" must end with the ';'_xml treenode navigateurl 多个参数-程序员宅基地

文章浏览阅读1.7w次。原因xml文件中对”&”符需要转义解决办法把”&”改成“_&_” 以hibernate.cfg.xml文件的配置url来举例的话就是这样jdbc:mysql://localhost:3306/Test?useSSL=true&characterEncoding=utf8_xml treenode navigateurl 多个参数

eclipse java1.8,Eclipse 运行在JDK1.8.0之上,报错及解决方法-程序员宅基地

文章浏览阅读650次。Eclipse版本:Eclipse-jee-neon-3-win32-x86_64JDK版本:java version "1.8.0"Java(TM) SE Runtime Environment (build 1.8.0-b132)Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)启动报错:Java Virtual Mac..._eclipse version 1.8.0_38

微信文章阅读数点赞数查询API接口及实现(小数据量)_查询微信赞赏记录api-程序员宅基地

文章浏览阅读4.5w次。微信文章阅读数点赞数查询API接口及实现 研究过微信文章阅读和点赞数的同学都知道,如何获取这两个数字,关键在于获取微信有效的key.这个key的作用时间大概是2小时,而且也有访问频率的限制.访问频率可以用代码控制,大概10秒一次的速度就不会被屏蔽.接下来说如何完全自动获取有效的key. 可能大部分同学都会去搞手机上的key,一来我不知道怎么搞(Java开发不会Android囧_查询微信赞赏记录api

【必备算法】二分查找:LeetCode题(一)69. x 的平方根,367. 有效的完全平方数_请使用二分查找实现近似开根号函数 返回整数部分-程序员宅基地

文章浏览阅读1.4k次。在看二分查找的LeetCode题之前,先看看二分查找的基础知识:使用二分查找的条件:可以通过索引访问(链表不行)有序存在上下界二分查找的实质:二分查找不是一上来就去找指定值,而是不断进行定位缩小范围的过程主要用来对一些暴力迭代进行优化复杂度:O(logN)Java模板:int left = 0, right = arr.length - 1;while (left <= right) { // 这里是 <=,即arr[left=right]也要进入判断逻辑 _请使用二分查找实现近似开根号函数 返回整数部分

OpenShift 4 - 全图形化 Step-by-Step 部署容器应用(附视频)_openshift4部署-程序员宅基地

文章浏览阅读1.8k次。文章目录webbackendmongodbhealth参考parks-workshopwebquay.io/openshiftroadshow/parksmapbackendhttp://nationalparks-parks-workshop.apps.cluster-b327.b327.sandbox824.opentlc.com/ws/info/mongodb$ oc create -n openshift -f https://raw_openshift4部署

推荐文章

热门文章

相关标签