本文作者:qiaoqingyi

编程语法(编程语法和算法的区别)

qiaoqingyi 2023-11-04 93

  作者:Peter

  出处:https://www.cnblogs.com/Peter-Zhang/

  本版权归作者所有

  昨天在《【备考宝典】Python详解之基础语法(一)》中讲述了python有三种内建的数据结构的第一种列表,今天从数据结构的第二种开始总结。

  六、数据结构

  2. 元组

  tuple和list十分相似,但是tuple是不可变的,即不能修改tuple,元组通过圆括号中用逗号分割的项定义;支持索引和切片操作;可以使用 in

  查看一个元素是否在tuple中。空元组();只含有一个元素的元组("a",) #需要加个逗号

  优点:tuple比list速度快;对不需要修改的数据进行‘写保护’,可以是代码更安全

  tuple与list可以相互转换,使用内置的函数list()和tuple()。

  元组最通常的用法是用在打印语句,如下例:

  函数如下:

  count(value)---返回元组中值为value的元素的个数

  t = (1, 2, 3, 1, 2, 3)

  print t.count(2) # 2

  index(value, [start, [stop]])---返回列表中第一个出现的值为value的索引,如果没有,则异常 ValueError

  3. 字典

  字典由键值对组成,键必须是唯一的;eg: d = {key1:value1, key2:value2};空字典用{}表示;字典中的键值对是没有顺序的,如果想要

  一个特定的顺序,那么使用前需要对它们排序;d[key] = value,如果字典中已有key,则为其赋值为value,否则添加新的键值对key/value;使

  用del d[key] 可以删除键值对;判断字典中是否有某键,可以使用in 或 not in;

  dict函数如下:

  clear()---删除字典中所有元素

  d1 = {"1":"one", "2":"two"}

  d1.clear()

  print d1 # {}

  copy()---返回字典的一个副本(浅复制)

  d1 = {"1":"one", "2":"two"}

  d2 = d1.copy()

  print d2 #{'1': 'one', '2': 'two'}

  dict.fromkeys(seq,val=None)---创建并返回一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值(默认为None)

  get(key,[default])---返回字典dict中键key对应值,如果字典中不存在此键,则返回default 的值(default默认值为None)

  has_key(key)---判断字典中是否有键key

  items()---返回一个包含字典中(键, 值)对元组的列表

  keys()---返回一个包含字典中所有键的列表

  

  values()---返回一个包含字典中所有值的列表

  pop(key, [default])---若字典中key键存在,删除并返回dict[key],若不存在,且未给出default值,引发KeyError异常

  popitem()---删除任意键值对,并返回该键值对,如果字典为空,则产生异常KeyError

  setdefault(key,[default])---若字典中有key,则返回vlaue值,若没有key,则加上该key,值为default,默认None

  

  update(dict2)---把dict2的元素加入到dict中去,键字重复时会覆盖dict中的键值

  viewitems()---返回一个view对象,(key, value)pair的列表,类似于视图。优点是,如果字典发生变化,view会同步发生变化。在迭代过程中,字典不允许改变,否则会报异常

  

  viewkeys()---返回一个view对象,key的列表

  

  viewvalues() ---返回一个view对象,value的列表

  4. 序列

  序列类型是指容器内的元素从0开始的索引顺序访问,一次可以访问一个或者多个元素;列表、元组和字符串都是序列;序列的两个主要特点是

  索引操作符和切片操作符;索引可以得到特定元素;切片可以得到部分序列;

  切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。 如果不指定第一个数,Python就从

  序列首开始。如果没有指定第二个数,则Python会停止在序列尾。 注意,返回的序列从开始位置 开始 ,刚好在结束位置之前 结束。即开始位置是

  包含在序列切片中的,而结束位置被排斥在切片外。 可以用负数做切片。负数用在从序列尾开始计算的位置。

  5. 绑定

  当创建一个对象并给它赋一个变量的时候,这个变量仅仅“指向”那个对象,而不是表示这个对象本身! 也就是说,变量名指向计算机中存储那个对象的内存,这被称作名称到对象的绑定。

编程语法(编程语法和算法的区别)

  如果要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单对象),那么必须使用切片操作符来取得拷贝。

  七、面向对象编程

  python支持面向对象编程;类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实例。

  对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为 域;对象也可以使用属于类的函数,这样的函数称为 类的方法;域和方法可以合称为 类的属性。

  域有两种类型--属于实例的或属于类本身;它们分别被称为实例变量和类变量。

  类使用关键字class创建,类的域和方法被列在一个缩进块中。

  类的方法必须有一个额外的第一个参数,但是在调用时不为这个参数赋值,这个特殊变量指对象本身,按照惯例它的名称是self,类似C#中的this。

  class Animal:

  pass #empty block

  __init__方法在类的一个对象被创建时调用该方法;相当于c++中的构造函数。

  __del__方法在类的对象被销毁时调用该方法;相当于c++中的析构函数。在使用del删除一个对象时也就调用__del__方法。

  Python中所有的类成员(包括数据成员)都是public的;只有一个例外,如果使用的数据成员以双下划线为前缀,则为私有变量。

  继承:为了使用继承,基类的名称作为一个元组跟在类名称的后面;python支持多重继承。下面是一个关于继承的例子:

  程序输出如下:

  八、输入/输出

  程序与用户的交互需要使用输入/输出,主要包括控制台和文件;对于控制台可以使用raw_input和print,也可使用str类。raw_input(xxx)输入xxx然后读取用户的输入并返回。

  1. 文件输入/输出

  可以使用file类打开一个文件,使用file的read、readline和write来恰当的读写文件。对文件读写能力取决于打开文件时使用的模式,常用模式

  有读模式("r")、写模式("w")、追加模式("a"),文件操作之后需要调用close方法来关闭文件。

  

  2. 存储器

  python提供一个标准的模块,成为pickle,使用它可以在一个文件中存储任何python对象,之后可以完整的取出来,这被称为持久地存储对象;还有另外一个模块成为cPickle,它的功能和pickle完全一样,只不过它是用c写的,要比pickle速度快(大约快1000倍)。

  未

  完

  待

  续

  

  “炼石杯”网络空间安全技能大赛

以赛促学、以技会友

更有诸多大奖等你拿

详情咨询QQ群:478091920

阅读
分享