一、set集合

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

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

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

      # 创建数值集合
    list_1 = set([1,2,3,6,9])
    list_2 = set([5,6,7,8,9]) #交集(两个集合相同的部分)
    list_1.intersection(list_2)
    list_1 & list_2 #并集(合并两个列表,去重)
    list_1.union(list_2)
    list_1 | list_2 #差集(list_1中有list_2中没有的)
    list_1.difference(list_2)
    list_1 - list_2 #对称差集(两个列表中不相同的部分)
    list_1.symmetric_difference(list_2)
    list_1 ^ list_2 #子集(查list_2是否是list_1的子集)
    list_2.issubset(list_1)
    list_3 <= list_1 #父集(查list_1是否是list_2的父集)
    list_1.issuperset(list_2)
    list_1 >= list_3 #添加一项
    list_1.add('567')
    #添加多项
    list_1.update([22,33,44]) #删除(使用remove()可以删除一项)
    list_1.remove('6')
    list_1.pop() #随机删除一项

二、文件操作

文件操作流程:

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

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

3.关闭文件

打开文件的模式有:

  • r,只读模式(默认)
  • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
  • a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
  • r+,可读写文件。【可读;可写;可追加】
  • w+,写读
  • a+,同a(追加模式)
"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
  • rU
  • r+U
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注
  • rb
  • wb
  • ab

open文件操作演示

    f = open('data','r+',encoding='utf-8')
f.read() #读取文件所有内容
f.readline() #读取一行内容
f.seek() #将光标跳到某个位置
f.tall() #查看光标所在位置
f.lush() #实时刷新
f.write() #向文件中写入
f.close() #关闭文件

with语句

为了避免打开文件后忘记关闭,可以通过管理上下文,即:
    with open('log','r') as f:

        ....
如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。
在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即:
    with open('log1') as obj1, open('log2') as obj2:
pass

三、字符编码与转码

1.首先通过编码【decode】转换为Unicode编码

2.然后通过解码【encode】转换为想要的编码

import sys
print(sys.getdefaultencoding()) msg = "我爱北京天安门"
#msg_gb2312 = msg.decode("utf-8").encode("gb2312")
msg_gb2312 = msg.encode("gb2312") #默认就是unicode,不用再decode,喜大普奔
gb2312_to_unicode = msg_gb2312.decode("gb2312")
gb2312_to_utf8 = msg_gb2312.decode("gb2312").encode("utf-8") print(msg)
print(msg_gb2312)
print(gb2312_to_unicode)
print(gb2312_to_utf8)

四、函数

函数基本语法及特性

1.函数是什么?

函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method。

2.定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
3.特性:

减少重复代码

使程序变的可扩展

使程序变得易维护

  • 定义语法

      def sayhi():#函数名
    print("Hello, I'm nobody!")
    sayhi() #调用函数
  • 可以带参数

      #下面这段代码
    a,b = 5,8
    c = a**b
    print(c) #改成用函数写
    def calc(x,y):
    res = x**y
    return res #返回函数执行结果 c = calc(a,b) #结果赋值给c变量
    print(c)

函数参数与局部变量

  • 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

  • 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值

Python Day3的更多相关文章

  1. 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数

    声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...

  2. Python——day3

    看到右边的时钟了吗?  我想世界最公平的一件事就是每个人的每一小时.每一天.每一年都是相同的,每个人的时间都是一样的. 一直保持温热感是一件很了不起的事,加油,屏幕前的你和我. 明天,还在等你 回顾d ...

  3. python,day3,函数基础-3

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 1.函数基本语法及特性 函数是什么? 函数一词 ...

  4. Python day3 知识总结

    if salary.isdigit(): salary = int(salary)判断输入的salary是否是一个整数是否成立 for index,item in enumerate(product_ ...

  5. python day3 int,str,list类型补充

    目录 python day 3 1. int类小知识点 2. str类小知识点 3. list类小知识点 python day 3 (学习资料来自老男孩教育) 2019/10/06 1. int类小知 ...

  6. Python——Day3知识点——文件操作

    一.打开文件 文件句柄 = open('文件路径', '模式') 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ...

  7. python day-3 基本数据类型

    1. 编码 1. 最早的计算机编码是ASCII. 美国人创建的. 包含了英文字母(大写字母, 小写字母). 数字, 标点等特殊字符!@#$% 128个码位 2**7 在此基础上加了一位 2**8 8位 ...

  8. Python day3 知识回顾

    names = ["Jonathen","Joesph","Jotaro","Josuke",["Mea&qu ...

  9. python基础 Day3

    python Day3 1.作业回顾 设定一个理想的数字比如88,让用户输入数字,如果比88大,则显示猜测的结果大:如果比66小,则显示猜测的结果小了,给用户三次猜测机会,如果显示猜测正确退出循环,如 ...

随机推荐

  1. Oracle 12c 使用scott等普通用户的方法

    目录: 一.前言 二.使用普通用户 三.自动启动PDB 一.前言 最近电脑上安装了oracle 12c数据库,想体验下新特性.安装完后,便像11g一样在dos窗口进行下面的操作: SQL Produc ...

  2. C++的友元类和友元函数实例

    #include <math.h> #include<iostream> using namespace std; class Point { public: Point(do ...

  3. UrlRewritingNet伪静态的使用方法与解决方案(URL重写)

    在建站初期时,我们往往需要考虑的是使用真静态还是伪静态,这对于往后的站点配置,延展性都会产生深远的影响. 我使用伪静态的唯一目的:SEO优化.毋容置疑,伪静态在对于Spider是非常有利的,因此,我更 ...

  4. [django]django+post+ajax+highcharts使用方法

    直接代码展示: view.py文件代码 from django.http import JsonResponse #django ajax部分 def ajax_kchart(request): ti ...

  5. RSA加密算法的简单案例

    RSA加密算法是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击. 那关于RSA加密算法有哪些应用呢?以下举一个数据库身份验证的案例. 在使用数据集进行身份认证时,密码存在数据 ...

  6. FineReport中hadoop,hive数据库连接解决方案

    1. 描述 Hadoop是个很流行的分布式计算解决方案,Hive是基于hadoop的数据分析工具.一般来说我们对Hive的操作都是通过cli来进行,也就是Linux的控制台,但是,这样做本质上是每个连 ...

  7. ik扩展支持Solr配置

    扩展ik原生代码:public class IKAnalyzerTokenizerFactory extends TokenizerFactory{ private boolean useSmart; ...

  8. String,StringBuffer,StringBuilder的区别

    public static void main(String[] args) { String str = new String("hello...."); StringBuffe ...

  9. NYOJ 485

    A*B Problem 描述 设计一个程序求出A*B,然后将其结果每一位相加得到C,如果C的位数大于等于2,继续将C的各位数相加,直到结果是个一位数k. 例如: 6*8=48: 4+8=12: 1+2 ...

  10. iOS关于NSUserDefaults存,写, 删的问题

      我们知道NSUserDefaults可以保存某些信息在本地,例如登录的账号,密码等等,当我们使用NSUserDefaults时,它是将信息写入到本地的一个plist文件里,我们都知道 删除plis ...