摘要:主要涉及新数据类型set集合、三元运算、深浅拷贝、函数基础、全局变量与局部变量

一、set --> 无序,不允许重复的集合 不允许重复的列表,
   1,创建
    s = set() 接收一个可迭代参数
     l = [11,22,11,22] s = set(l) --> print s --> {11,22}
    s = {11,22,33}
    创建空集合 默认使用 s = set()
   2,方法
    .add()  添加一个元素
    .clear()
    a.difference(b)  a中存在,b中不存在,返回新值,变量接收
    a.difference_update(b)  a中存在,b中不存在,a更新
    .discard()  移除,不存在不报错
    .remove()  移除,不存在报错
    .pop() 移除,并可以把移除元素接收称为新变量
    .intersection() 交集 --> 返回交集部分并形成新变量
    a.intersection_update(b) ---> 返回a与b的交集,并把它更新为a
    a.isdisjoint(b) --->  a 与 b 没有任何交集 才会返回True,否则都为False
    a.issubset(b) ---> 询问a 是 b的 子集合,返回True or False
    a.issuperset(b) ---> 询问a 是 b的 父集合,返回True or False
    a.symmetric_difference(b) ---> 判断a 与 b 集合的差别之处,并把所有的返回生成新变量
    a.symmetric_difference_update(b)  ---> 判断a 与 b 集合的差别之处,并把所有差别来更新a
    .union() ---> 把2哥集合 组合成1个集合
    a.update(b) ---> 把a 与 b 集合 组合为1个集合,并更新为a

二、三元运算/三目运算

  if 1==1:

    print('alex')

  else:

    print('ethan')

转成三元运算形式 --> name='alex' if 1==1 else 'ethan' --> print(name)

变量=值1 if 条件成立 else 值2

三、深浅拷贝:

数字,字符串的修改:就是在内存中重新创建,数字,字符串或是赋值,只要是拷贝,无论深拷贝 还是浅拷贝 ,id都是一样的

其他 列表,元组,字典:深拷贝:除了最后一层字符串或是数字无需拷贝,地址不变外,其他的所有层都copy 产生新的id地址

             浅拷贝:只拷贝最外面一层,其余层id都不变

四、函数:

1,定义函数    关键字 def --> 函数名():

2,返回值    函数里不设置return,默认返回NONE    函数里设置return,调用函数的返回值就是return之后的值

  一旦遇到return 函数return以下代码不再执行,函数执行了return语句,那么函数的生命就结束了,

3,参数

  形参、实参:

  普通参数,默认数量要一致,并且一一对应

  指定参数: 执行函数时,指定参数

  默认参数:定义函数时设置默认值,调用函数时,可传可不传,传的话就覆盖默认值,默认参数放在参数尾部    def func(a1,a2,a3='ethan')

动态参数:实参传几个,就接收几个

    *args 得到的是元组 tuple ,传的参数为元组元素

     **kwargs ---> 需要传成 k1=123,k2=456 这种键值对形式,得到的是字典

  万能参数: *args,**kwargs

      例1 --> def f1(*args):

            print (args,type(args))

         l1 =[11,22,33]

          f1(l1) --> ([11,22,33],)

          f1(*l1) --> (11,22,33)

        f1(123,456,[12,32]) ---> (123,456,[12,32])

     例2 --> def f2(**kwargs):

            print (kwargs,type(kwargs))

        f2(k1=123,k2=345)  ---> {'k1':123,'k2':345}

4,为动态参数传入 列表,元组,字典类型的参数

**************************** 例题 *****************************

list_new = [11,22,33]    tuple_new = (44,55,66)    dict_new = {'k1':234,'k2':345}

如果1, def f1(*args):

      print(args)

    def f2(**kwargs):

      print(kwargs)

f1(list_new) ---> ([11,22,33],)      f1(tuple_new) ---> ((44,55,66),)      f2(dict_new) ---> ({'k1':234,'k2':345},)

f1(*list_new) ---> (11,22,33)      f1(*tuple_new) ---> (44,55,66)      f2(**dict_new) ---> {'k1':234,'k2':345}

五、局部变量,全局变量:

规则:命名时全局变量大写,局部变量小写

局部变量:仅仅在定义的函数部分使用 --> 修改为全局变量 global

对于 set集合、列表、字典等 作为参数进行传递,传的是引用,id不变,不是新创建

对于def 函数,一旦参数args 在代码段里使用了 args = xxxx 相当于在内存里重新创建,导入的实参跟这个args新赋值没啥关系

python基础知识(三)的更多相关文章

  1. Python基础知识(三)

    Python基础知识(三) 一丶整型 #二进制转成十进制的方法 # 128 64 32 16 8 4 2 1 1 1 1 1 1 1 例如数字5 : 101 #十进制转成二进制的方法 递归除取余数,从 ...

  2. python基础知识三

    在考虑它们的运算时,一定要想到python是一门面向对象语言,它对类型的要求是不那么严格的,因为在完全面向对象的语言中,一切都是对象. 那么让我们重新 考虑+ -  *  /等操作,不再拘泥于传统的数 ...

  3. python基础知识三——try与except处理异常语句

    try/except介绍 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,在执行过程中对 ...

  4. python基础知识三 字典-dict + 菜中菜

    3.7字典:dict+菜中菜 1.简介 ​ 无序,可修改,用于存储数据,大量,比列表快,将数据和数据之间关联 ​ 定义:dict1 = {'cx':10,'liwenhu':80,'zhangyu': ...

  5. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  6. python 基础知识(一)

    python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...

  7. python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  8. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  9. Python基础知识(五)

    # -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...

  10. python基础知识部分练习大全

    python基础知识部分练习大全   1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py   #必须在首行 ...

随机推荐

  1. 重邮二进制日天群-pwn1

    给学弟们练手的题目,做的过程中接触一些基本概念 #include <stdio.h> #include <unistd.h> int main() { ]; welcome() ...

  2. Java基础知识笔记(八:集合类)

    目录 1  集合类简介  2  List介绍及简单使用 2.1  LinkedList介绍及简单使用 2.2  ArrayList介绍及简单使用 2.3  Vector介绍及简单使用 2.3.1  S ...

  3. ubuntu 14.04 配置 jdk1.8

    自己在Ubuntu中安装jdk1.8的步骤,记录以方便以后查询. 将下载好的jdk安装包移到/usr/local目录中(我喜欢将自己安装的软件放在/usr/local目录中),解压缩 sudo tar ...

  4. java 静态内部类小总结

    内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权 ...

  5. [LeetCode] Basic Calculator II 基本计算器之二

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  6. Docker 简介

    1.什么是Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 机器上.使用Docker可以让每个应用彼此相 ...

  7. 使用markdown

    一.在windows下使用markdown MarkdownPad:MarkdownPad is a full-featured markdown editor for windows. Awsomi ...

  8. 走格子 51nod

    球最少需要的能量,就是保证能量一直>=0,从头遍历取过程中能量最小值,绝对值为答案. #include<iostream> #include<algorithm> #in ...

  9. JavaScript面向对象的程序设计

    ECMAScript支持面对对象(oo)编程,但不使用类或接口.对象可以在代码执行过程中创建和增强,因此具有动态性而非严格定义的实体.在没有类的情况下,可以此采用下列模式创建对象. 工厂模式,使用简单 ...

  10. .net core 源码解析-web app是如何启动并接收处理请求

    最近.net core 1.1也发布了,蹒跚学步的小孩又长高了一些,园子里大家也都非常积极的在学习,闲来无事,扒拔源码,涨涨见识. 先来见识一下web站点是如何启动的,如何接受请求,.net core ...