专栏首页python3python之基础篇(二)

python之基础篇(二)

防伪码:忘情公子著

一、面向过程与面向对象

  面向过程:

    以指令为中心,由指令去处理数据

    只要考虑如何组织代码去解决问题

  面向对象:

    以数据为中心,所有的处理代码都围绕数据展开

    要考虑如何设计数据结构组织数据,并且提供对此类数据所允许的处理操作

二、数据结构

数据结构就是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合。这些数据元素可以是数字或者字符,甚至可以是其它类型的嵌套的数据结构

  python的最基本数据结构是序列

  序列中的每个元素被分配一个序号——即元素的位置,也称为索引。索引从0开始编号

  python包含6种内建的数据序列:

    列表

    元组

    字符串

    Unicode字符串

    buffer对象

    xrange对象

三、要实现python编程需要了解的几个关键要素

  1、基本数据类型

  2、对象引用

  3、如何组织数据类型

  4、输入/输出

  5、函数的创建与调用

  6、逻辑操作符

  7、控制流语句

  8、算术操作符

  下面详细来说说这些要素:

1.基本数据类型

  1.1 Intergral类型:

    整型:不可变类型(-257,201624583371143)

布尔型:True、False

  1.2浮点类型:

    浮点数(3.1415926)

    复数(3+6j)

    十进制数字

  1.3字符串:不可变类型

    'GNU is Not Unix',"hello",'''world'''

2.对象引用

python将所有数据存为内存对象。

  python中,变量事实上是指向内存对象的引用。

  动态类型:在任何时刻,只要需要,某个对象引用都可以重新引用一个不同的对象(可以是不同的数据类型)

  "="用于将变量名与内存中的某对象绑定:

    如果对象事先存在,就直接进行绑定;否则,则由"="创建引用的对象

  变量命名规则:

    只能包含字母、数字和下划线,且不能以数字开头

    区分字母大小写

    禁止使用保留字

  命名惯例:

    以单一下划线开头的变量名(_x)不会被from module import *语句导入

    前后有双下划线的变量名(__x__)是系统定义的变量名,对Python解释器有特殊意义

    以双下划线开头但结尾没有下划线的变量名(__x)是类的本地变量

  交互模式下,变量名"_"用于保存最后表达式的结果,类似shell中的$?

  注意:变量名没有类型,对象才有

3.如何组合数据类型

 Python常用的组合数据类型:

    序列类型:

      列表:使用[]创建,如['call','me','python','.']。列表属于可变对象,支持原处修改

      元组:使用()创建,如('one','two')。元组属于不可变对象

      字符串:使用引号引起来,可以是单引号、双引号、三引号。字符串属于不可变对象,但支持切片,而切片产生的是新片,原片本身并没有发生改变

    集合类型:

      集合(set):一堆数据杂乱无章的放在一起,没有次序,不重复

    映射类型:

      字典:键值对。字典属于可变对象

  python中,组合数据类型也是对象,因此其可以嵌套,如['hello','world',[1,2,3]]

  实质上,列表和元组并不真正存储数据,而是存放对象引用

  python对象可以具有其可以被调用的特定"方法(函数)"

  元组、列表以及字符串等数据类型是"有大小的",也即,其长度可以使用内置函数len()测量

  4.输入/输出 python解释器提供了3种标准文件对象,分别为标准输入、标准输出和标准错误,它们在sys模块中分别以sys.stdin、sys.stdout和sys.stderr形式提供。

  python的print语句实现打印(一个对程序员友好的标准输出流接口)。

  从技术角度来讲,print是把一个或多个对象转换为其文本表达形式,然后发送给标准输出或另一个类似文件的流。

  在python中,打印与文件和流的概念联系紧密:

    文件写入方法是把字符串写入到任意文件

    print默认把对象打印到stdout流,并添加了一些自动的格式化

  实质上,print语句只是python的人性化特性的具体实现,它提供了sys.stdout.write()的简单接口,再加上一些默认的格式设置。

  print接受一个逗号分隔的对象列表,并为行尾自动添加一个换行符,如果不需要,则在最后一个元素后添加逗号。

  print格式化:

print "String %format1 %format2 ..." % (variable1,varialbe2,...)

字符

输出格式

d,i

十进制整数或长整数

u

无符号整数或长整数

o

八进制整数或长整数

x

十六进制整数或长整数

X

十六进制整数(大写字母)

f

浮点数,如[-]m.dddddd

e

浮点数,如[-]m.dddddde±xx

E

浮点数,如[-]m.ddddddE±xx

g,G

当数小于-4或更高精度时使用%e或%E,否则使用%f

s

字符串或任意对象。格式化代码使用str()生成字符串

r

同repr()生成的字符串

c

单个字符

%

字面量%

  %后面可以使用的修饰符,(如果有,则只能按如下顺序):

 %[(name)][flags][width][.precision]typecode

      (name):位于括号中的一个属于后面的字典的键名,用于选出一个具体项

      flags:标志位。下面标志中的一个或多个

      -:表示左对齐,默认为右对齐

      +:表示包含数字符号,正数也会带"+"

      0:表示一个零填充

      width:一个指定最小宽度的数字,表示在显示时用多大的总宽度来显示。比如-20f

      .precision:

        一个小数点,用于按照精度分割字段的宽度

        一个数字,指定要打印字符串中的最大字符个数,浮点数中小数点之后的位数,或者整数的最小位数

    例:

    In [1]: d={'x':32,'y':27.490325,'z':65}

    In [2]: print "%(x)-10d %(y)0.3g"% d	#这里()中的字典键必须是字符串,不能是数字,否则将会报错
    32         27.5

5.函数的创建与调用

  函数是实现模块化编程的基本组件。

  python使用def语句定义函数。

    def functionName(arguments):
      suite

  函数可以参数化,通过传递不同的参数来调用。

  每个python函数都有一个返回值,默认为None,也可以使用"return value"明确定义返回值。

  def语句会创建一个函数对象,并同时创建一个指向函数的对象引用。

  函数也是对象,可以存储在组合数据类型中,也可以作为参数传递给其它函数。

  callable()可用于测试函数是否可调用

    In [4]: def testFunc(arg1):
       ...:     print arg1
       ...: 

    In [5]: callable(testFunc)
    Out[5]: True

  python有众多内置函数(例:range、xrange)

  可以使用dir命令来查看python中有哪些内置函数(dir(__builtin__)或dir(__builtins__))。

  python标准库拥有众多内置模块,这些模块拥有大量函数。

  python模块实际上就是包含python代码的.py文件,其拥有自定义的函数与类及变量等。

  导入模块使用import语句进行,后跟模块名称(不能指定模块文件名的后缀.py)。

  import相当于shell中的source命令,用于把其它模块(.py文件)中的代码加载进当前程序文件中,让当前文件直接调用。

  导入一个模块后,可以访问其内部包含的任意函数、类及变量

In [6]: import random
In [7]: x = random.choice(['a','b','c','d','e','g','f'])
In [8]: print x
b

  6.逻辑操作符

  and  与

  or   或

  not  非

7.控制流语句

  if、for、while、try

  8.算术操作符

  +、-、*、/、+=、-=、*=、/=

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python-day01

      已经从事运维工作五年半的时间了,如今的收入也自我感觉良好。可是,本来以为学习网络技术以及服务器技术,只做运维,不懂开发也行,然而,就在准备重新寻找工作,渴望...

    py3study
  • 【python】[转载]Unicode

    python2.7在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错,不过在python3就不会有这样的问题。

    py3study
  • python boost相关配置

    2、boost 编译的时候 相关python的编译变量填清楚了 如:./bootstrap.sh --with-icu --with-python=/usr/...

    py3study
  • 【python】[转载]Unicode

    python2.7在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错,不过在python3就不会有这样的问题。

    py3study
  • Python系列-python内置函数

    本文转载自:http://www.javaxxz.com/thread-359303-1-1.html

    py3study
  • Python 转 EXE(知道真相的我眼

    添加系统变量后,在cmd命令框中输入 python, 回车, 会出现类似这样的版本提示,并进入python环境。

    py3study
  • 浅析Python 赋值、浅复制(拷贝)与深度(复制)拷贝 浅析Python 赋值、浅复制(拷贝)与深度(复制)拷贝

    尾尾部落
  • python--的初级了解

    Unicode:2字节=16bit,2^16-1=65535      a-字节  你-2字节

    py3study
  • python入门必备干货 | python,pycharm,anaconda区别与联系

    瓦特,一会python一会Anaconda一会又特么来了个pycharm,一串接一串英文,特么怎么读都还不知道!!!能吃吗??? ? 一.python是什么 ...

    腾讯NEXT学位
  • 四个字节的安全 :一次固件加密算法的逆向分析

    这篇文章源自我们的一个检测项目,项目中我们需要对设备的固件进行分析,在整个固件分析的过程中我们克服了很多困难,最后完整解密了设备固件的内容,这里将相关的内容做个...

    腾讯玄武实验室

扫码关注云+社区

领取腾讯云代金券