设为首页 收藏本站
查看: 1163|回复: 0

[经验分享] python之基础篇(二)

[复制链接]

尚未签到

发表于 2018-8-15 14:01:26 | 显示全部楼层 |阅读模式
  防伪码:忘情公子著
  一、面向过程与面向对象
  面向过程:
  以指令为中心,由指令去处理数据
  只要考虑如何组织代码去解决问题
  面向对象:
  以数据为中心,所有的处理代码都围绕数据展开
  要考虑如何设计数据结构组织数据,并且提供对此类数据所允许的处理操作
  二、数据结构
  数据结构就是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合。这些数据元素可以是数字或者字符,甚至可以是其它类型的嵌套的数据结构
  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.dddddde浮点数,如[-]m.dddddde±xxE浮点数,如[-]m.ddddddE±xxg,G当数小于-4或更高精度时使用%e或%E,否则使用%fs字符串或任意对象。格式化代码使用str()生成字符串r同repr()生成的字符串c单个字符%字面量%  %后面可以使用的修饰符,(如果有,则只能按如下顺序):
  %[(name)][flags][width][.precision]typecode
  (name):位于括号中的一个属于后面的字典的键名,用于选出一个具体项
  flags:标志位。下面标志中的一个或多个
  -:表示左对齐,默认为右对齐
  +:表示包含数字符号,正数也会带"+"
  0:表示一个零填充

  >  .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.算术操作符
  +、-、*、/、+=、-=、*=、/=

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-552303-1-1.html 上篇帖子: Python--day6--面向对象学习 下篇帖子: python进程开发
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表