首页 > day 2 基本类型和函数

day 2 基本类型和函数

列表,元组,字典的转换。
list列表是一组可变的元素集合
列表是'[]'括号组成的,[]括号包含所有元素,列表的创建可以传递字符串,也可以传递多个字符串来创建列表。如"asd", / "a","b" ...
tuple元组的创建和列表一致,区别在于 元组是以'()'创建的,并且元组数据不可变。
dict字典不同于列表和元组,他是一种键值对关系,即key-value,key是唯一的。
字典的作用就是储存一些需要关键字来索引数据的数据结构。
bytes类型转换
如果我们创建一个字符串,并且想把它转换成字节,那么需要用到bytes类型,如:
s = "asd"
bytes(s,encoding="utf-8") 需要指定字符串的自身的编码。否则会出错
dict的formkeys函数可以将列表创建字典的同时,在参数2设置一个共同的值。共享同一块内存,但如果分别赋值不同的值。则改变为分别指向不同的内存。
set -- 集合
set 集合是类似列表,但是不同的是set内不存在重复元素,这是set的天性就是去重。集合内的数据都是唯一的。 set的元素没有固定的顺序,随时变化。
set的函数 
s.clear()  清除set元素
s.remove(x) 移除集合内的一个值,如果不存在报错。
s.add(x) 增加一个值
s.pop() 将集合内的自后一个pop并返回。
s.intersection(x) j交集 ,求s和x的交集,就是参数1 有的,同时参数2也有的。a & b
s.issubset(x) 判断x是不是s的子集,就是判断x的元素是否全部都在s中存在,并且s的元素比x多。
s.issuperset(x) 判断s是不是x的父序列
s.symmetric_difference(x) 交叉集- 把s存在的,x不存在的,x存在的。s不存在的一并返回
set.difference(形参1)  差集。求集合和参数1的差集,就是集合有的,参数没有的。,函数会返回差集的数据 = a - b
s.differents_update(x)  求差集的同时将差集数据更新到s 
s.union(x) 并集。 == s | b
三目运算-》三元
res = value1 if 条件 else value2 ,如果为真res= value1,否则res = value2
深浅拷贝
对于str,int 的拷贝赋值,地址都是一样的。
对于浅拷贝,仅仅拷贝最外面一层。(不包括数据层,数据层是不拷贝的。因为内存优化机制问题,只要指向的数值一致。那么内存地址都是指向同一个地址)
对于深拷贝,也是不涉及数据层的。深拷贝只是将数据层以外的所有层都拷贝一份。
函数
函数是提高代码复用性的一个数据结构,因为在面向过程里代码往往是复制黏贴,很多代码都是重合的。
所以函数应用而生,为代码的重复利用而设计。
函数就是把实现特定功能的代码写到一个数据结构内,这个数据结构称为函数。
当需要时只需调用即可。
函数已可以传递参数进去,参数有多样:
1 位置参数,位置参数默认在前面。因为 其他参数都有其他功能。
2 默认参数,可以设置一些默认不需要赋值的参数。
3 可变参数,可变参数是用于接收数目不定的参数,因为有时候可以需要接收不确定数量的参数所以可变参数就派上用场了。 *argv
4 关键字参数,关键字参数类似于可变参数,也是可以接收数量不定的参数,不过却别在于关键字参数只接收key=value 这样的形式参数,不是这样形式的参数都是可变参数接收。
对于将一个list对象当做形参传递给函数时,参数传递时 可以直接传递变量,也可以变量前 带一个*号,
对于直接传递 ,函数内部*argv 是一个包含一个list对象的tuple
对于带*号传递,函数内部*argv是一个包含n个元素的tuple
全局变量 & 局部变量
1     全局变量可以在全局范围内使用,但是在局部内不可更改,除非使用golbal关键字声明全局变量。但是这样是不推荐的做法,行业内严禁。
2     局部变量是在函数内定义的或者循环结构内定义的变量,只要循环或函数结束就会删除局部变量。
全局变量推荐大写。
参数一共有几类:
1 普通参数 -> func("a"/variable)
2 指定参数 -> func(p="xxx")
3 默认参数 一般放到最后, def fnc(a,b,c,d=4,e=5)
4 可变参数/动态参数 可以接收数量不定的变量集合, def func(*args) func(1,2,3,4,5)
5 动态关键字参数,可以接收指定参数的形式参数,但是又没有相对应的形参。

转载于:https://www.cnblogs.com/zxcv-/p/6816690.html

更多相关:

  • 情况一:后台给的日期是Sat Jul 31 2021 21:50:01 GMT+0800 (中国标准时间),如果直接呈现给用户,他们一定会吐槽你不说人话~~~ 情况二:后台给的百分数是小数没有转化成00%格式 采用vue的过滤机制就可以解决这种情况,有两种方式: 第一种:全局写法,在main.js里面加入 // 【...

  • 问题描述 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。 例如:输入test.exe  -a 1 2       执行1+2输出3 问题分析 上面的逻辑思维很简单,但是问题在于如何在VS中向...

  • ------------------------siwuxie095                         MyBatis 中 #{} 和 ${} 的区别       1、在 MyBatis 的映射配置文件中,动态传递参数有两种方式:    (1)#{} 占位符    (2)${} 拼接符          2、#{} 和...

  •     #2.6 map()# 第一个参数传入一个函数,,第二个参数为一个可迭代对象li_1 = (1,3,5,7)def funcA(x): return x*xm1 = map(funcA,li_1)print(type(m1))print(m1())# 2.6 reduce()# 第一个参数传入一个函数,第二个参数 可以迭...

  • 草色新雨中, 松声晚窗里。之前我们学习 Power Query 都是用鼠标就完成了很多复杂的操作。虽然 PowerQuery 已经将大部分常用功能内置成到功能区。基本能完成我们大部分的报表自动化功能。但是总有些复杂的或者个性化的问题是开发团队没有预先想到的,这时我们就需要学习 M 语言。一、M 语言在哪里?M语言的函数公式有三个地...

  • 前言从2020年3月份开始,计划写一系列文档--《小白从零开始学编程》,记录自己从0开始学习的一些东西。第一个系列:python,计划从安装、环境搭建、基本语法、到利用Django和Flask两个当前最热的web框架完成一个小的项目第二个系列:可能会选择Go语言,也可能会选择Vue.js。具体情况待定,拭目以待吧。。。基本概念表达式表...

  • 1.1函数1.1.1什么是函数函数就是程序实现模块化的基本单元,一般实现某一功能的集合。函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能,进行一系列的逻辑运算return 返回值:函数的返回值能表示函数的运行结果或运行状态。1.1.2函数的作用函数是组织好的,可重复使用的,用来...

  • 原标题:基于Python建立深度神经网络!你学会了嘛?图1 神经网络构造的例子(符号说明:上标[l]表示与第l层;上标(i)表示第i个例子;下标i表示矢量第i项)单层神经网络图2 单层神经网络示例神经元模型是先计算一个线性函数(z=Wx+b),接着再计算一个激活函数。一般来说,神经元模型的输出值是a=g(Wx+b),其中g是激活函数(...

  • 在学习MySQL的时候你会发现,它有非常多的函数,在学习的时候没有侧重。小编刚开始学习的时候也会有这个感觉。不过,经过一段时间的学习之后,小编发现尽管函数有很多,但是常用的却只有那几个。今天小编就把常用的函数汇总一下,为大家能够能好的学习MySQL中的函数。MySQL常使用的函数大概有四类。时间函数、数学函数、字符函数、控制函数。让我...

  • 原文出处: 韩昊    1 2 3 4 5 6 7 8 9 10 作 者:韩 昊 知 乎:Heinrich 微 博:@花生油工人 知乎专栏:与时间无关的故事   谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。   转载的同学请保留上面这句话,谢谢。如果还能保留文章来源就更感激不尽了。 我保证这篇文章...

  • 原文出处: 韩昊   我保证这篇文章和你以前看过的所有文章都不同,这是 2012 年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两年,嗯,我是拖延症患者…… 这篇文章的核心思想就是: 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维...

  • 很多Linux高手都喜欢使用screen命令,screen命令可以使你轻松地使用一个终端控制其他终端。尽管screen本身是一个非常有用的工具,byobu作为screen的增强版本,比screen更加好用而且美观,并且提供有用的信息和快捷的热键。 想象一下这样一个场景:你通过Secure Shell(ssh)链接到一个服务器,并...

  • NarrowbandPrimary Synchronization Signal时域位置每1个SFN存在一个NPSSSFNSubframeSymbol长度每个SFN5最后11个symbol11个symbols频域位置NB-IOT下行带宽固定180kHz,一个PRB,12个子载波。...

  •  [h1]反斜杠只能够阻止一个字符  [h2]位于键盘的左上角,和~公用一个键。...