Python学习笔记1

为实习好好学吧

------------------------------------

1.数据类型

Python计算时乘号*不可以省略 !!

整型和其他语言一样,八进制0开头,十六进制0x开头.

浮点型两种表示方式,12.3以及科学计数法1.23e1或者12.3e0均可. 

     整数与浮点数的运算规则同C, 两个数运算有一个浮点,结果便为浮点,小括号可叠加 (1+3)*4+((5*6)/8)

布尔值Ture,False,可用and,or,not计算

Python把0、空字符串''和None看成 False,其他数值和非空字符串都看成 True

Python中的空值为None

重点介绍----字符串用 ' ' 或 " " 括起来均可

如果''中又有''或“”,则需要用转义字符/ 或者raw字符串

     (1)转义字符:如     print 'Tom said /" I/'m a cat./" '   ~~~~~    Tom said " I'm a cat."

     常用的转义字符还有   \n 表示换行   \t 表示一个制表符  \\ 表示 \ 字符本身,这些都是在字符串 ' ' 中用的

     (2)raw字符串: r' ' 表示字符串中的字符不需要转义, 但不包括 ' 和 ",限单行(无语,好鸡肋啊,O__O"…)

     相比之下直接用 r''' ''' 更实用,可以多行(用键盘enter在编辑器换行即可),而且包括 ' 和 " 都不需要转                  义。如下图例子,注意行号:

              

                    ---------------------->>>>>>

                    

     (3)字符串中有中文时,需在字符串前加u,如u' 中国' , u可以与r等叠加,如ur''' I'm a 中国人.'''


2. print语句  

print  ' ' ,' '

用于输出指定语句,举一个例子  :    print '2+2', '4'             对应输出:2+2=4

换行问题注意到相比别的语言,Python的句子结尾没有分号,而观察即可发现Python不需要‘ ; ’,因为Python执行是翻译而非编译,是靠编码时的换行来区分行数,逐行翻译。如下图,注意行号-
           
#开头的语句为注释


3.变量
Python是动态语言,变量没有固定类型,变量名必须是大小写英文、数字和_的组合,且不能用数字开头
等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量
当我们写:a = 'ABC'时,Python解释器干了两件事情:
1. 在内存中创建了一个'ABC'的字符串;
2. 在内存中创建了一个名为a的变量,并把它指向'ABC'。

4.List(数组)
元素用 [ ] 括起来,逗号分隔,print除了元素值还显示' [ ] '  ,  还是由于Python动态语言,list中的元素没有类型,各种数据均可以。
如  : L = ['Michael', 100, True]
List的访问: (1) 同数组的顺序引用,下标为0~n-1:L[0] , L[1]
                    (2) Python“特有"(个人猜测o(╯□╰)o)的倒叙,倒数第n个元素表示为L[-n],如最后一个元素L[-1]
List添加元素:(1)用 list 的 append() 方法,把新元素追加到 list 的末尾  ,示例    L.append('Paul')
                    (2)用list的 insert()方法,它接受两个参数,第一个参数是索引号(0~n-1),第二个参数是待添加的新元                         素,插入位置后的元素各后移一个位置 .  示例    L.insert(0, 'Paul')
List删除元素:(1)list的pop()方法,从List中pop掉最后一个元素,相当于删除,并将其值返回 。L.pop()~~~打印list                中最后一个元素
   (2)list的pop(n)方法,同理,只是pop掉索引的第n个元素,将其打印
List的元素替换:直接利用索引赋值即将原来的值替换

By the way-----关于元组tuple :
                         (1) 也是有序的列表;
                         (2) 用( )而非List的[ ]创建 ;
                         (3) 创建完毕就无法修改;
                         (4)同List一模一样的索引访问方式;   将其print还显示' () '  ;
                         (5) 约定,单个元素的元组在元素后面要加一个 ', '  当元素个数为多个时,这个' , ' 不影响打印结果. 
                         (6) tuple中含List元素时,这个List中的子元素是 可修改 的,如  t = ('a', 'b', ['A', 'B'])  中'A'和'B' 可修改
示例如下图-------
                     Python学习笔记1_第1张图片

5.条件判断和循环
(补充:关于Python的代码块-----不同于C,Java等用{ }符号区分,Python是用4个空格的缩进来确定一个代码块,不能用Tab 。如果是在Python交互环境下编程,退出缩进需要多敲一行回车,即留出一行空白 
If  格式---          if   (not)条件
              代码块 
If else 格式---    if   条件
                              代码块
                          else :
                              代码块 
If elif else 格式---   elif即为熟知的的elseif ,不多说,注意elif 也是接条件和 :
For循环 ,用于遍历List和Tuple   ---       for 变量名 in list名(或tuple名或[ ],()实例):
                                                                 代码块
While循环,不满足条件退出循环 ---      while  条件 "
                                                                 代码块
break退出for和while循环,continue直接进入下一次循环 
循环均可嵌套

5.查找表
dict  无序 key : value 对元素的集合,无序,用 { } 括起来,注意,最后一个元素末尾不需加‘ , ’   例如
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
dict用key来索引value,如 d['Adam'] 即 95 ,key不存在返回keyerror,解决方法:
      (1)索引前先判断该key是否在dict中
    if 'Paul' in d:
        print d['Paul']
     (2)使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None
    print d.get('Bart')

添加新key:value :直接使用赋值语句即可,d[new_key]=new_value, 若key已存在,则赋值语句将value值替换
遍历dict:  使用for循环可以遍历dict的key值,而通过key值又能得到value。
    for key in d:
        print key
                       Python学习笔记1_第2张图片

set    为去重复以及无序化的list,无法索引访问,元素和dict一样,为不 
         创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素
     s = set(['A', 'B', 'C'])
如果 x 在  set s 中,则 x in s 的 返回值为Ture,否则为False 
应用:由于set的访问非常快,所以其应用一般为匹配用,set中存一些常量,表示离散范围,用 变量 in s 的值判断这          个量是否属于这个离散范围,如非法字符判断可以将合法字符都存在set中。
set的遍历  : 用for循环遍历,遍历是无序的,但能保证每一个都只遍历一次,格式同dict的遍历。
set的更新:添加元素用set的add()方法  --->> s.add(新元素) ,如果新元素已存在,则不会加进set也不报错
                  删除元素用set的remove()方法--->> s.remove(set中某元素),若该元素不存在,则报错。所以使用                         remove方法一般需要预判断,if x in s :        s.remove(x)

5.函数
函数 cmp(x, y) 需要两个参数,如果 xy,返回 1
函数range(n1,n2,n3)可以创建一个从n1到n2-1每隔n3个数取一个的数组List  。默认n3=1省去不写,如  
       range(1, 101) -->>   [1, 2, 3, ..., 100]
函数zip()可以把两个 list 变成一个 list。 zip([10, 20, 30], ['A', 'B', 'C'])  -->>  [(10, 'A'), (20, 'B'), (30, 'C')]
字符串的函数upper可以把字符串变为对应大写    'abc'.upper()  -->  'ABC'
函数定义:                     def 函数名(参数名 ) :
                                             代码块
函数返回值:   Python的函数可以返回多个值(感天动地啊!!!)--->>  return  返回值1,返回值2,.....
            返回值的获取        ---->>     x, y = move(100, 100, 60, math.pi / 6)
                    原理是其函数返回的多个值其实是一个Tuple
默认参数:  就是给某个参数一个默认值,调用时没有传入这个参数时,这个参数使用默认值,传入了当然用传入的                      值,在定义函数的时候参数一个值即可,如右边n的默认值为2 :           def power(x, n=2):  
可变参数:  函数能接受任意个参数       ---->>    def fn(*args):
                   原理还是Tuple,即args是一个tuple,例子如下
           def average(*args):
              sum = 0.0
              if len(args) == 0:
                  return sum
              for x in args:
                  sum = sum + x
              return sum / len(args)
           print average()
           print average(1, 2)
           print average(1, 2, 2, 3, 4)



6.切片

------------------------------------

形象的说,Python切片是一种基于索引的"截取"操作,其截取对象可以是list,tuple。显然,由于基于索引的,所以操作对象必须是有序的,否则,何来索引。(dict,set这种无序的无切片操作)

以list为例(tuple同理),介绍其使用方法, L是一个list:
L[a : b+1(:c)] 切取 L的第a的元素到第b个元素,得到一个新list,(:c)为可选,c表示每隔c个元素取一个,省去即c=1;

倒数切片:索引换成倒数方式,如 L[-3:-1]。

字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符。


7,列表生成式

就是在[ ]里面做文章生成一个特定list的东西,省了用for循环append( )的麻烦

 [x * (x + 1) for x in range(1, 100, 2)]  -->   [1x2, 3x4, 5x6, 7x8, ..., 99x100]
 [x * x for x in range(1, 11) if x % 2 == 0]  -->  [4, 16, 36, 64, 100]
 [m + n for m in 'ABC' for n in '123']   -->  ['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

记住这三个例子应该够用了。







你可能感兴趣的:(Python学习笔记1)