Python自动化开发从浅入深-语言基础

一、变量与赋值
 
1、什么是变量
        变量是内存中的一块区域,它可以存储规定范围内的值,而且值可以改变。我们在内存中开一个空间,再为这块内存空间定义一个名称,即变量名。
-- courses_name , student_name , courses_score均为变量名。
 
变量起名规则:
-- 显式
-- 命名时将单词间加底划线,nums_of_dogs = 12
-- NumsOfDogs = 12 (驼峰写法)
-- 数字不能开头。
-- 特殊字符不能有。
-- 不能有空格
-- 关键字不能为变量
-- 中间不能有减号
 
2、什么是赋值
        -- 变量赋值是变量声明和定义的过程,如:x=2,x+=2,x-=1
  --  student_name和get_name指向同一块内存区域
 
-- 看看下个例子中的赋值在内存中的变化
变量的指针变化可根据指向内存数据的指针计数变化而定的,新分配一个变量内存数据,则指针计数为1,指针计数为0则回收内存。
注意:python中的内存其实是python先从内存中获取一块,然后自己分配的地址
 
 
二、数据类型
 
        Python中的数字类型包括以下几种类型:
        -- 数字类型:整型 Int,浮点型 Float,长整型 Long
        -- 布尔类型
        -- 字符串类型
        -- 列表类型
        -- 元组类型
        -- 字典类型
 
    1、整型类型 Int
    无论32位还是64位机器,其取值范围为 -2**31~2**31-1,即 -2147483648~2147483647。
5、字符串 String
    -- 使用引号定义的一组可以包含数字、字母、符号(非特殊系统符号)的集合。如:'ab',“abc”,"""三重引号可以指定位置输出"""。
   -- 注意:多个字符串用加号形式进行格式化输出(print),这样使得每一个连接变量都会在内存中开辟一个空间,增加了内存消耗(万恶的加号),所以不建议以加号拼接的形式表达
格式化。要进行格式化输出建议用三重引号形式。
 
       
             * 分割: 将字符串分割为列表项
           
            * 长度计算,下例中a字符串的长度为22
          
           * 索引
                  索引就是通过下标取序列类型的一个值。
              定义一个字符串:a = "abcdef"
                  字符串的索引值从0开始计算向后数。如,a[0]取a,a[3]取d,a[-1]取f
 
           * 切片   
                 切片就是通过取出序列类型中的一段值,切片的格式为:[开始位置:结束位置-1:步长]。
             定义一个字符串:a = "abcdef"
            a[1:3]取出bc,a[1::2]取出bdf
     
      * 字符串处理函数

            字母处理

               全部大写   :str.upper()

      
               全部小写   :str.lower()

      
               大小写互换:str.swapcase()

      
               首字母大写,其余小写:str.capitalize()

      
               首字母大写:str.title()

      

             

格式化相关
    获取固定长度,右对齐,左边不够用空格补齐:str.rjust(width)

  
    获取固定长度,左对齐,右边不够用空格补齐:str.ljust(width)

  
    获取固定长度,中间对齐,两边不够用空格补齐:str.center(width)

  
    获取固定长度,右对齐,左边不足用0补齐:str.zfill(width)

  

 

字符串搜索相关
    搜索指定字符串索引位置值,没有返回-1:str.find('字符串')

    
    指定起始位置搜索:str.find('字符串',start)

  

  指定起始及结束位置搜索:str.find('字符串',start,end)

  
    从右边开始查找:str.rfind('字符串')

  
    搜索到多少个指定字符串:str.count('字符串')

  

   上面所有方法都可用index代替,不同的是使用index查找不到会抛异常,而find返回-1


字符串替换相关
    替换old为new:str.replace('old','new')

  
    替换指定次数的old为new:str.replace('old','new',maxReplaceTimes)

  


字符串去空格及去指定字符
    去两边空格:str.strip()

  
    去左空格:str.lstrip()

  
    去右空格:str.rstrip()

  
    去两边字符串:str.strip('d'),相应的也有lstrip,rstrip

  

  按指定字符分割字符串为数组:str.split(' ')

  

  

 

字符串判断相关

是否以start开头:str.startswith('start')


是否以end结尾:str.endswith('end')


是否全为字母或数字:str.isalnum()


是否全字母:str.isalpha()


是否全数字:str.isdigit()


是否全小写:str.islower()


是否全大写:str.isupper()

 

 
    6、列表类型 List
    列表是用中括号[]表示的,包含了多个以逗号分隔的数值或字串,它是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。
    列表是可变类型的数据。
        
  
   
   
    
三、运算符
        -- 取模运算%:返回除数的余数。
 
        --幂运算**:返回X的Y次幂。
 
        --取整除运算//:返回商的整数部分。
 
        --比较运算符:
            == :等于,比较对象是否相等。
            !=    : 不等于,比较两个对象是否不相等。
            *=   : 乘法赋值运算符。
            /=  :除法赋值运算符。
            %=:取模赋值运算符。
            **= : 幂赋值运算符。
 
        --位运算:
            & : 按位与运算符。
            |  :按位或运算符。
            ^  : 按位异或运算符。
            ~ : 按位取反运算符。
            <<:左移动运算符。
            >>:右移动运算符。
 
             
 
    -- 逻辑运算符
           and  :布尔"与"。如果x为false,x and y返回false,否则返回y的计算值。
           or    :布尔"或"。如果x是true,它返回true,否则返回y的计算值。
           not  :布尔“非”。如果x为true,返回false。如果x为false,返回true。
    
    --成员运算符
            in  :  如果在指定的序列中找到了值,则返回True,否则返回false。
       not in :    如果在指定的序列中没有找到值,则返回True,否则返回false。
    --身份运算符
             is : 判断两个标识符是不是引用自一个对象。
      is not  :判断两个标识符是不是引用自不同的对象。
               
 
 
四、流程控制
    
    1、if...else 和缩进
 
    if...else为条件判断语句,即如果条件成立则做什么,否则做什么。
    其结构如下:
    if 条件1:            #在其作用域范围的语句需要有缩进,如果"条件1"成立执行"语句执行1"和"语句执行2"                                  
      语句执行1     # "语句执行1"和"语句执行2"前要进行缩进
      语句执行2     #各个语句的缩进距离要保持一致,通常为4个空格。
    elif 条件2:          #否则,如果"条件2"成立,则执行"语句执行3"和"语句执行4"        
      语句执行3
      语句执行4
    else:                 #如果"条件1"和"条件2"不成立,则执行"语句执行5"和"语句执行6"
      语句执行5
      语句执行6
 
    举例: 
             
          运行结果
              
    2、for循环...else
    
    for循环可以在指定范围内重复执行其范围内的语句,它可以遍历所有序列类型的值。
           

实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

for letter in 'Python':     # 第一个实例
   print '当前字母 :', letter

fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # 第二个实例
   print '当前字母 :', fruit

print "Good bye!"

以上实例输出结果:
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : h
当前字母 : o
当前字母 : n
当前字母 : banana
当前字母 : apple
当前字母 : mango
Good bye!


通过序列索引迭代

另外一种执行循环的遍历方式是通过索引,如下实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print '当前水果 :', fruits[index]

print "Good bye!"

以上实例输出结果:

当前水果 : banana
当前水果 : apple
当前水果 : mango
Good bye!

以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数。



循环使用 else 语句

在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

如下实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

for num in range(10,20):  # 迭代 10 到 20 之间的数字
   for i in range(2,num): # 根据因子迭代
      if num%i == 0:      # 确定第一个因子
         j=num/i          # 计算第二个因子
         print '%d 等于 %d * %d' % (num,i,j)
         break            # 跳出当前循环
   else:                  # 循环的 else 部分
      print num, '是一个质数'

以上实例输出结果:

10 等于 2 * 5
11 是一个质数
12 等于 2 * 6
13 是一个质数
14 等于 2 * 7
15 等于 3 * 5
16 等于 2 * 8
17 是一个质数
18 等于 2 * 9
19 是一个质数
 
 
 
posted @ 2016-01-19 21:11  赵洪  阅读(464)  评论(0编辑  收藏  举报