python-基础

Posted on 2016-11-01 14:12  笨鸟先辉  阅读(142)  评论(0)    收藏  举报

 

目录:

一、变量

二、用户输入

三、模块

四、数据类型

五、运算

六、条件表达式

七、扩展

一、变量

1) 变量只能以字母或下划线开头,并以字母、数字和下划线组成
2) 不能以关键字命名变量名

例:'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'

 
变量命名规划:

1) it_ls 
    :用下划线分割两个或以上的单词
2) AgentConfig
    :每个单词首字母大写
3) chenForege
    :首个单词小写往后的每个单词首字母大写
4) COMMON
    :全大写可以定义一些全局的变量
5) _buff
    :下划线可以定义一些特殊的变量或实例
6) fk_card
    :简写和单词混用以下划线隔开

 

二、用户输入

input raw_input

    1) 在3.0中它们是没有区别的

    2) 在2.7中

input: 会根据输入变换不同类型(数字就为int 字符就为str )
    若要将 int 类型的数字转换为 str 类型呢?
        :在输入的时候将数字用双引号或单引号括起来('123')
raw_input: 把所有的输入都转换为 str 字符类型
    若要将 str 类型的数字转换为 int 类型呢?
        :int(raw_input()) 将输入的 数字 转换为 int 若输入的是字符就会报错

密码怎么实现密文输入?

# 利用 getpass 模块中的 getpass 方法。
import getpass 
#引用模块
pass = getpass.getpass("Pleases password: ")

三、模块

模块是什么?

    : 可以通俗的理解为,将一些常用的功能单独放到一个文件里面,当我们在其他文件中需要用到的时候,我们就可以通过调用的方式使用这个功能,这个功能文件就可以称为一个“模块”。


模块怎么调用?

    调用 impor + 模块名
        : import os
    使用 模块名 + 具体的功能名字
        : os.system()
    调用自定义模块
        : 将自定义的模块目录写入 path 环境变量中,调用方法和上面一样,但不能写后缀名



四、数据类型
#演示是使用的软件为 ipython 扩展中有该软件的安装方法

1) 整型

   : int = 23

2) 布尔值

    : bool = False

3) 字符串

    : str = 'string' 或 "string"

4) 浮点型

    : float = 2.3

5) 元组(不可变)

:tuple = (1, 2, 3, 4, 5 )
#切片
    tuple1[-1]
    tuple1[1:5]
    tuple1[1:5:2]

In [4]: tuple[-1]
Out[4]: 5

In [5]: tuple[1:5]
Out[5]: (2, 3, 4, 5)

In [6]: tuple[0:5]
Out[6]: (1, 2, 3, 4, 5)

In [7]: tuple[0:5:2]
Out[7]: (1, 3, 5)
   
In [8]: del tuple

#Python元组的内置函数:

1. cmp(tuple1, tuple2):比较两个元组元素(等于返回0,大于返回1,小于返回-1)。
2. len(tuple):计算元组元素个数。
3. max(tuple):返回元组中元素最大值。
4. min(tuple):返回元组中元素最小值。
5. tuple(seq):将列表转换为元组。

注:

1、当定义元组中只有一个数字时,就必须在数字后加逗号分割数字与括号的歧义

In [24]: t = (1)

In [25]: t
Out[25]: 1

In [26]: ttuple = (1,)

In [27]: tuple
Out[27]: (1,)    

2、tuple 


    不可变是指tuple的元素不能变化。当一个tuple中有一个列表时,我们就可以改变列表中的值,但我们不能改变列表,因为列表是tuple的元素,列表的元素是可变的所以我们改变的是list的元素。(tuple指向的是这个列表,但列表的内容指向的是其他值,我们改变的只是列表的指向,并没有改变 tuple 的指向。)

In [54]: d = [1,2,3]

In [55]: a = 1

In [56]: b = 2

In [57]: c = 3

In [58]: tuple = (a,b,c,d)

In [59]: tuple
Out[59]: (1, 2, 3, [1, 2, 3])

In [60]: tuple[3][0] = 4

In [61]: tuple
Out[61]: (1, 2, 3, [4, 2, 3])

6) 列表

    : list = [1,2,3,4]
#添加
    list.append()
In [62]: list = [1,2,3,4]

In [63]: list
Out[63]: [1, 2, 3, 4]

In [64]: list.append(5)

In [65]: list
Out[65]: [1, 2, 3, 4, 5]
#插入
    list.insert()
In [65]: list
Out[65]: [1, 2, 3, 4, 5]

In [66]: list.insert(0,8)

In [67]: list
Out[67]: [8, 1, 2, 3, 4, 5]
#删除
    del list[]
    list.remove()
In [67]: list
Out[67]: [8, 1, 2, 3, 4, 5]

In [68]: del list[0]

In [69]: list
Out[69]: [1, 2, 3, 4, 5]

In [70]: list.remove(2)

In [71]: list
Out[71]: [1, 3, 4, 5]
#修改
    list[1] = x
In [75]: list
Out[75]: [1, 3, 4, 5]

In [76]: list[0] = 6

In [77]: list
Out[77]: [6, 3, 4, 5]
#查找
    var in list
In [80]: list
Out[80]: [6, 3, 4, 5]

In [81]: 5 in list
Out[81]: True

In [82]: 7 in list
Out[82]: False
#可迭代,列表,字符,元组,数字
    list.extend([])
In [86]: tuple
Out[86]: (1, 2, 3)

In [87]: list
Out[87]: [6, 3, 4, 5]

In [88]: list.extend([tuple])

In [89]: list
Out[89]: [6, 3, 4, 5, (1, 2, 3)]    
#删除最后一个元素,并返回该值
    list.pop() 
In [90]: list
Out[90]: [6, 3, 4, 5, (1, 2, 3)]

In [91]: list.pop()
Out[91]: (1, 2, 3)

In [92]: list
Out[92]: [6, 3, 4, 5]    
#排序    
    list.sort()
    list.reverse()
In [92]: list
Out[92]: [6, 3, 4, 5]

In [93]: list.sort()

In [94]: list
Out[94]: [3, 4, 5, 6]

In [95]: list.reverse()

In [96]: list
Out[96]: [6, 5, 4, 3]
#搜索
    list.index()
In [99]: list
Out[99]: [6, 5, 4, 3]

In [100]: list.index(6)
Out[100]: 0

In [101]: list.index(5)
Out[101]: 1

#Python列表的内置函数:

1. cmp(list,list2):比较两个列表元素(等于返回0,大于返回1,小于返回-1)。
2. len(list):计算列表元素个数。
3. max(list):返回列表中元素最大值。
4. min(list):返回列表中元素最小值。

7) 字典(无序)
  

 : dict = {'A':'1','B':'2','C':'3'}
    #字典的元素是以 key:value 的形式存储的,每个元素都必须有key和value哪怕是空,并且key值在元素中唯一。
#查找key值,若不存在可以返回指定的默认值
    dict.get(key,“None”)
In [142]: dict.get('B',"None")
Out[142]: '2'

In [143]: dict.get('B')
Out[143]: '2'

In [144]: dict.get('b',"None")
Out[144]: 'None'
#判断key值,在字典里返回true,否则返回false   
    dict.has_key
In [148]: dict.has_key('B')
Out[148]: True

In [149]: dict.has_key('b')
Out[149]: False
#将字典打印为数组   
    dict.items()
In [150]: dict.items()
Out[150]: [('A', '1'), ('C', '3'), ('B', '2')]    
#拷贝   
    dict.copy()
In [151]: d = dict.copy()

In [152]: d
Out[152]: {'A': '1', 'B': '2', 'C': '3'}   
#清除    
    dict.clear()
In [153]: dict
Out[153]: {'A': '1', 'B': '2', 'C': '3'}

In [154]: dict.clear()

In [155]: dict
Out[155]: {}
#指定删除key,并显示values,若不存在则会显示指定的输出选项    
    dict.pop(key,"None")
In [160]: dict
Out[160]: {'A': '1', 'B': '2', 'C': '3'}

In [161]: dict.pop('b',"None")
Out[161]: 'None'

In [162]: dict.pop('B',"None")
Out[162]: '2'

In [163]: dict
Out[163]: {'A': '1', 'C': '3'}
#更新或将两个字典组合    
    dict.update()
In [169]: dict
Out[169]: {'A': '1', 'C': '3'}

In [170]: dict2
Out[170]: {'D': '4'}

In [171]: dict.update(dict2)

In [172]: dict
Out[172]: {'A': '1', 'C': '3', 'D': '4'}
#查看字典的所有 key    
    dict.keys()
In [173]: dict.keys()
Out[173]: ['A', 'C', 'D']
#查看字典的所有 values   
    dict.values()
In [174]: dict.values()
Out[174]: ['1', '3', '4']
#给字典添加元素
    dict['key'] = value
In [176]: dict['F'] = '5'

In [177]: dict
Out[177]: {'A': '1', 'C': '3', 'D': '4', 'F': '5'}

    
#Python字典的内置函数:

1. cmp(dict,dict2):比较两个字典元素(等于返回0,大于返回1,小于返回-1)。
2. len(dict):计算字典元素个数。
3. str(dict): 将字典以字符串显示。

 

五、运算

算数运算:

    + : 加
    - : 减
    * : 乘
    / : 除
    % : 取余
    ** : 幂
    //: 取整


比较运算:

    == : 等于
    != : 不等于
    <> : 不等于
    > : 大于
    < : 小于
    >= : 大于等于
    <= : 小于等于


赋值运算:

    = : a = b + c
    += : c += a 等于 c = c + a 
    -= : c -= a 等于 c = c - a 
    *= : c *= a 等于 c = c * a 
    /= : c /= a 等于 c = c / a 
    %= : c %= a 等于 c = c % a 
    **= : c **= a 等于 c = c ** a 
    //= : c //= a 等于 c = c // a 

逻辑运算:

    and
       真真 真
        真假 假
        假假 假
    or 
       真真 真
        真假 真
        假假 假
    not 
        真   假
         假   真

     
六、条件表达式  
       
条件语句:

1)  if..
        if expression:
            statement(s)

2)  if...else        
        if expression:
            statement(s)
        else:
            statement(s)

3)  if...elif...else        
        if expression:
            statement(s)
        elif expression:
            statement(s)
        else:
            statement(s) 

循环语句:

1)  for iterating_var in sequence:
        statement(s)

2)  for iterating_var in sequence:
        statement(s)
    else: 
        #当for循环正常结束时才会执行else
        statement(s)
    
3)  while True: 
        #死循环
        statement(s)
        
4)  while expression:
        statement(s)
    
5)    while expression:
        statement(s)
    else:
        statement(s) 
        #正常结束循环才会打印else

   
print 自带换行符:

    print i     # 自动换行
    print i,    # 将换行符转换为空格

列表重写:

[i for i in range(10) if i % 2 == 0]
[i**2 for i in range(10)]
    xrange() 和 range()
    xrange()是将列表转化为一个对象(常用)
    range()是将列表保存到内存,列表过大会占用过多的内存
 

循环遍历字典:

for k in dict:
    print "%s --> %s" % (k,dict[k])

for k,v in dict.items():
    print k,v

for k,v in dict.iteritems():
    print k,v

使用for循环遍历文件:

with open('/root/scripts/python/open.txt') as fd:
#将文件打开并转换为一个对象
  for line in fd:
      print line,  


使用while循环遍历文件:

fd = open('/root/scripts/python/open.txt')
#将文件打开并将内容读入到内存
while True:
    line = fd.readline()
    if not line:
      break
    print line,
fd.close    
#关闭文件

while 与 for 对比:

#for循环用在有次数的循环上
#while循环用在有条件的控制上
#while循环表达式必须返回一个True或False


七、扩展      
       
1. python 的文件类型

    python 有三种文件类型分别是 .py .pyc .pyo
        .py     默认创建类型
        .pyc    是经过编译形成的字节码,不能正常显示
        .pyo    经过优化后的字节码 

 
2. #!/usr/bin/env python 和 #!/usr/bin/python 的区别 

    若系统中存在多个python版本的情况下:
   

#!/usr/bin/env python (默认使用)
	: 根据系统的path环境变量决定使用那个版本,同时也方便与版本的变化。这样就只需要更改path变量中的python路径就可以了。
#!/usr/bin/python
	: 指定系统中的某一个版本的python运行,若需要切换其他版本时,就需要在脚本中更改。 

      
3. ipython的安装方法:
    ipython是linux上的python解释器并支持tab建补全
  

 安装环境:
        [root@test ~]# python -V
        Python 2.6.6
        
        [root@test ~]# cat /etc/issue
        CentOS release 6.5 (Final)
        Kernel \r on an \m

    #替换本地yum源
    cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    #生成缓存
    yum clean all
    yum makecache
    #安装epel扩展
    yum install epel-release-6-8.noarch -y
    #安装 pip 常用于安装 python 模块
    yum install python-pip -y
    #pip查看已经安装的python模块
    pip list
    #使用pip安装ipython(这里的python版本为2.6.6 所以使用的ipython为1.2.1 若版本过高就会报错)
    pip install ipython==1.2.1 
    #运行ipython
    [root@test ~]# ipython

    #无网环境安装,下载并上传ipython-1.2.1的tar.gz压缩包,解压并进入到目录中执行 setup.py install