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 动态关键字参数,可以接收指定参数的形式参数,但是又没有相对应的形参。

时间: 2024-10-11 09:38:32

day 2 基本类型和函数的相关文章

JS 对基本类型和引用类型的判断

啰啰嗦嗦写了很多,把原本几句话就可以交待的东西扯得那么长.. 但在我曾经对这个问题感到困惑时,就希望能找到让我知其然并知其的讲解. 限于自己的知识和文章篇幅,我无法讲得多么细致,甚至不能保证正确性. 我只能把自己对js的理解写出来,大家可以批判着看. 着急找答案的朋友可以直接翻到后面看总结.. ------------------------------------------------------------------------------------------------------

JavaScript基本类型和引用类型的值

JS变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型指的是简单的数据段,而引用类型值那些由多个值构成的对象: 在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值.JS有5种基本数据类型:Undefined, Null,Boolean,Number和String.这5种基本数据类型是按值访问的.因为可以操作保存在变量中的实际的值. 引用类型的值保存在内存中的对象.与其他语言不同,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间.

javascript 数据类型(基本类型和引用类型的定义和区别)

ECMAStript变量包含两种不同类型的值,基本类型和引用类型. 基本类型:指的就是保存在栈内存中的简单数据段. 引用类型:指的是那些保存在堆内存中的对象,换句话说,就是变量名实际上是一个指针,而这个指针指向的位置,就是保存对象的位置. 两种不同的访问方式 基本类型:按值访问,操作的是它们实际的值. 引用类型:按引用访问,当查询时,我们需要先从栈中读取内存地址,然后按照指针所指向的地方,找到堆内存里面的值. 基本类型 基本的数据类型有:`undefined,boolean,number,str

Javascript中的基本类型和引用类型

一.基本类型和引用类型概述 js中数据类型的值包括:基本类型值和引用类型值 基本数据类型:undefined;null;boolean;number;string 引用类型值:保存在内存中,js不允许直接访问内存位置,因此时操作引用而不是实际对象 二.如何检测数据类型 1.基本数据类型的检测:使用typeof var s = "AAA"; alert(typeof s); //返回string `     2.引用类型(对象类型)检测:使用instanceof alert(person

基本类型和引用类型

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC" } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; min-height: 1

JS基本类型和引用类型的值

JS中可以把变量分成两部分,基本类型和引用类型. 基本类型比较简单,包括:Undefined.Null.Boolean.Number和String,基本类型值就是简单的数据段:引用类型值可能由多个值构成的对象. 引用类型值保存在内存中,而JS是不能直接访问内存的,所以对于引用类型,操作的不是实际的对象而是对象的引用. 注:string在ECMAScript中不是引用类型,和其他许多语言不同. 接下来主要说明引用类型值的一些问题. 1.动态属性. JS中对象的属性可以动态的添加并且赋值的,比如:

变量——基本类型和引用类型的值

基本类型和引用类型的值 一.综述 ECMAScript变量可能包含两种不同的数据类型的值:基本类型值和引用类型值. 基本类型值是指简单的数据段,而引用类型值指那些可能由多个值构成的对象. 在给一个变量赋值时,解析器必须确定这个值是基本类型值还是引用类型值. 5种基本数据类型(Undefined.Null.Boolean.Number.String)是按值访问的,因此可以操作保存在变量中实际的值. 引用类型的值是保存在内存中的对象.与其他语言不同,JavaScript不允许直接访问内存中的位置也就

《JavaScript高级程序设计》读书笔记 ---基本类型和引用类型的值

变量.作用域和内存问题 基本类型和引用类型的值ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值.第3 章讨论了5 种基本数据类型:Undefined.Null.Boolean.Number 和String.这5 种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值.引用类型的值是保存在内存中的对象.与其他语言不同,J

JS 基本类型和引用类型的值

对于引用类型的值,可以为其添加属性和方法,也可以改变和删除其属性和方法.如下: var person = new Object(); person.name = "Jack"; alert(person.name); //"Jack" 以上代码创建了一个对象并将其保存在了变量 person 中.然后,为该对象添加了一个名为 name 的属性,并将字符串值 "Jack" 赋给了这个属性.紧接着,又通过 alert() 函数访问了这个新属性.如果对象