python基础知识(三)
摘要:主要涉及新数据类型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基础知识(三)的更多相关文章
- Python基础知识(三)
Python基础知识(三) 一丶整型 #二进制转成十进制的方法 # 128 64 32 16 8 4 2 1 1 1 1 1 1 1 例如数字5 : 101 #十进制转成二进制的方法 递归除取余数,从 ...
- python基础知识三
在考虑它们的运算时,一定要想到python是一门面向对象语言,它对类型的要求是不那么严格的,因为在完全面向对象的语言中,一切都是对象. 那么让我们重新 考虑+ - * /等操作,不再拘泥于传统的数 ...
- python基础知识三——try与except处理异常语句
try/except介绍 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,在执行过程中对 ...
- python基础知识三 字典-dict + 菜中菜
3.7字典:dict+菜中菜 1.简介 无序,可修改,用于存储数据,大量,比列表快,将数据和数据之间关联 定义:dict1 = {'cx':10,'liwenhu':80,'zhangyu': ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- python 基础知识(一)
python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...
- python 爬虫与数据可视化--python基础知识
摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...
- python基础知识小结-运维笔记
接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...
- Python基础知识(五)
# -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...
- python基础知识部分练习大全
python基础知识部分练习大全 1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py #必须在首行 ...
随机推荐
- android 获取IMSI信息(判断是移动,联通,电信手机卡)
首先我们需要知道手机IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信.那么第一步就是先获取手机IMSI号码:代码如下 /** *获取IMSI信息 * ...
- 刷新页面时 select值保持不变
刷新页面时,要使下拉菜单(select).raido保持不变,用ajax是无法实现的.我想只能通过cookies才能实现.刷新前先把select或radio的值保存在cookies中,刷新后再填回去. ...
- ArrayList<E>源码分析
ArrayList是按照线性表结构实现的 ArrayList的主要继承结构 public class ArrayList<E> extends AbstractList<E> ...
- Django之Form组件
Django之Form组件 本节内容 基本使用 form中字段和插件 自定义验证规则 动态加载数据到form中 1. 基本使用 django中的Form组件有以下几个功能: 生成HTML标签 验证用户 ...
- 框架dubbox的简单使用
之前: RPC: Remote Produedure Call :一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议 SOA: Service-oriented architect ...
- xamarin.forms uwp app部署到手机移动设备进行测试,真机调试(device portal方式部署)
最近学习xamarin.刚好 手上有一个lumia 930.所以试一试把uwp app部署到手机上,并真机调试一把. 目前环境: 1.开发pc电脑是win10,版本1607.加入了insider,所以 ...
- RedisUtil 工具类
package com.test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import red ...
- C阅读与学习
征服C指针 C语言接口与实现:创建可重用软件的技术
- wordpress默认index主页选择Your Projects提示无法找到项目解决办法?
wordpress_4.5.3默认index主页选择Your Projects下部署的项目发现报错无法找到目标解决办法: 1.其实细心的小伙伴已经发现问题出在哪里,跳转后链接地址发生了错误没有加loc ...
- 【原创】自己动手写工具----签到器[Beta 2.0]
一.前面的话 上一篇中基本实现了简单的签到任务,但是不够灵活.在上一篇自己动手写工具----签到器的结尾中,我设想了几个新增功能来提高工具的灵活程度,下面把新增功能点列出来看看: (1)新增其他的进程 ...