python第一天

python介绍

      Python作为一门高级语言,他的历史我就不在多做介绍,毕竟网上相关信息很多,有兴趣的同学可以自行百度。谈到python我们不得不说到C,毕竟python来自C嘛。广大群众都说C语言程序执行速度快,那么为什么C语言快呢。

      C直接编译成机器码,其他语言编译成字节码,在经过处理成为机器码。但是不得不说C这种语言还是存在一些问题,比如内存的回收,这就需要程序员自己去考虑了,而python等高级语言,能够做到内存自动调节。之所以选择python作为学习,主要是python类库资源丰富,且linux原装python。(linux运维的福音啊)。并且作为胶水语言,python能够配合其他语言协同工作。
  python的主要应用领域为:
                    数据分析
                    系统编程
                    组件集成
                    网络服务            ★
                    图像处理
                    数值计算和科学计算
  而其中网络服务,恰恰是我们运维人员最需要的。
      上面我们已经确定了要选择python这种语言,但是python种类繁多,主要分为以下几种
    Cpython:用C进行编译,我们选用这个
    Jyhton:拿到python代码后编译成java的字节码
    IronPython:C#搞得
    PyPy:python实现的python
 

     安装python(windows下python无法多进程)

  这个没什么好说的win环境下就是一路next就OK(windows下需要把python的路径增加到环境变量PATH中),linux默认就带了python,如果需要安装其他版本的python,请把yum配置修改为原有python路径
 
执行过程
解释器把数据读到内存,然后相关分析(词法、语法分析)。编译-->执行
unicode 能识别但是不能写入到硬盘,且占用内存大,至少是两个字节16位。中文一般三个字节。
UTF-8是unicode的升级版,智能控制内存。英文还是采用ascll方式存储,中文采用unicode
 
注释方法 
# -*- coding:utf-8 -*-
或者
# coding:utf-8        (除非人品极差,否则很少出问题)
3.0默认是UTF-8
 

注释

单行注释用#
多行注释以"""开始"""结束
 
模块种类:内置模块、自己编写的、别人写的
import sys
sys.argv  捕获参数
 
 
pyc 字节码文件,编译后的产物。导入时如果m.py和m.pyc功能是一样的话,优先执行.pyc。不一样的话编译.py成.pyc然后把pyc编译成机器码执行
 

变量

变量由字母数字下划线组成,第一位不能为数字,且不能与内部关键词重名
name1 = "123"
name2 = name1
此时name1  和 name2 的值均为123
name1 = "456"
此时name2还是123 字符串不会随着原有内存地址指向的改变而改变
C语言中是没有字符串的,但是C语言有字符。所以python的字符串是是由字符数组来保存的(python是由C开发的)
所以造成name2没有改变的原因是,字符串发生更改,就是在内存中重新创立
由于数组是连续的所以字符串修改必须开辟空间
假设三个字符串需要相加时"hello" +"hehe"+ "woqu"
所以开辟时需要3次
"hello"
"hello"+"hehe"
"hello" +"hehe"+ "woqu"
 
id(变量)  查看内存地址
小数字池 -5到257  如果两个变量值在这个范围则自动合并
 
常见数据类型
两部分
            1、单值
                        数字
                                整形
                                长整形        (整形过长自动转换哦)
                                浮点型
                                复数    (无视吧,一般情况下你玩不到,工程貌似可以用到)
                        布尔值,    True,    False
                                            1            0
                        字符串
            2、集合
                        列表
                        元组
                        字典
                        哈希表
模型绑定,用户验证
可以对用户输入进行验证
 
查看变量类型:type(变量)
 
字符串格式化
%属于占位符
使用方式 
%s:字符
%d:数字
%f:浮点数
name = 'i am %s' % 'alex'
name = 'i am %s ,age is %d' %("alex",73)
采用索引
name = "i am {0},age{1}"
name.format("alex",18)
 
字符切片
name = "alex"
name[0]=a
name[0:2]=al  ##0开始小于2
name[0:]           ##从0到最后
name[-1]          ##最后一个
print len(name)        #查看多少个字符
去除字符串开头和结尾的空格
name = "          alex"
print    name.strip()
print    name.lstrip()    #去除左边的空格
print    name.rstrip()    #去除右边的空格
 
question
为何可以通过索引取
类里面有什么可以?怎么可以支持下标
 
names.split(分隔符)
 

列表

列表创建
name_list    =    [ 'alex','seven','eric']    ###调用下面的内容
或者
name_list    =    list([ 'alex','seven','eric'])
列表追加
name_list.append = ["hehe"]
删除
del name_list[0]
获取长度
len(name_list)
判断是否存在列表
“alex” in name_list    #返回布尔值
循环
for ele in name_list:
        print ele
条件循环
for ele in name_list:
    if ele == "alex":
        print ele        
        break
创建元组(不可修改,列表可以修改)
ages = (11, 22, 33, 44, 55)
ages = tuple(['alex','seven','tony'])
 
["alex",("seven","alex")]
 
字符(str)
列表(list)
元组(tuple)
共同点:切片、包含、索引、循环
异同点:
    str修改后重新创建空间
    list修改后内存空间不变
    tuple不能修改
 
dict(字典又称为键值对)
        字典无序
        特殊的for循环
        key()   -->   列表
        values()  -->    列表
       
person = {
    "alex":    "alex",
    "age":    18,
    "gender":    "看心情",
}
通过键进行查询
person.keys()        #获取所有的key,属性为列表
person.values()    #获取所有的值,属性为列表
person["name"]
字典进行循环
for key,value in person.items():
        print    k
        print    v
 
#出来的数据的顺序是随机的
 
文件内容读写
file_obj = file("文件路径","模式")
1、找到文件
2、打开文件
file(文件路径,文件打开形式)
形式很多:例如只读、二进制、等等
3、文件操作
file_obj.read()
file_obj.readlines()[行,]        #得到列表
for line in file_obj.xreadlines():    # 逐行读取,貌似已废弃
            print line
for line in file_obj:        #替代品
文件写
file_obj.write()
file_obj.writelines()
4、文件关闭
file_obj.close()
 

 

posted @ 2015-10-30 17:38  跟力哥学python  阅读(249)  评论(0编辑  收藏  举报