python学习笔记(一)

python简介

     python能干的事:web开发,自动化运维,自动化测试,大数据分析,爬虫等、许多大网站都在应用。

     排名:上升到了第5名

     python用c编写,他的种类很多,但常用的就是cpython,linux默认安装的就是这个。

python安装

     windows:直接去python官网下载exe下一步,下一步,完成。

     centos7:自带python2.7

python升级

     关键就是这个,以前咱们用的都是centos6.5,默认的是python2.6,要想使用最新版,就要升级到2.7,自己编译吧。

     1.安装gcc      #yum install gcc

     2.下载源码包     python.org去下载源码

     3.编译安装     ./configurre && make all && make install

     4.把2.7改成默认    默认的是/usr/bin/python ,给他重命名/usr/bin/python2.6,然后做个软连接ln -s 

     5.yum是依赖python的,默认的变成2.7了,但他是用2.6写的,所以用的时候会报异常,所以修改一下配置文件

          #vim /usr/bin/yum,将头部修改为python2.6


开始学了

一、写个代码

     1.重要的不是写代码出结果,出了hello,world就完事了,要知道他的执行过程,python有自己的解释器(虚拟机)

          先把代码文件打开,做词法分析,然后语法分析,没有问题了,编译,加载进内存,执行出结果

     2.他有内置模块,比如sys,在脚本里可以调用,还有开源模块,也可以自定义模块。


二、解释器

     1.上面提到解释器,那个是啥?就是这一行#!/usr/bin/env python,这不是linux的python环境吗,告诉他这里是python的世界。

     2.当然没有这行也行,但是运行的时候要声明一下,#python   xx.py

     3.必须要py结尾吗?肯定不是,叫什么都行,你明白,但是别人明白吗?


三、编码

     1.ascII码,这太古老了,谁让计算机是老外发明的,全是为了英文服务的,所以他只能装下8位的英文00000000~11111111,中文咋办?

      2.Unicode编码     这下能识别中文了,但是有最低消费,16位起,内存消费的起吗,太占地方了,所以,要改进一下

      3.UTF-8     linux上用的最多了吧,有几位占几位,多好。

     4.以utf-8方式来读代码,就没有乱码啦:

          #!/usr/bin/env python

          #-*- coding:utf-8 -*-


四、注释

     1.单行注释  和shell一样开头用#,后面的就不管用啦

     2.多行注释  '''多行内容'''   三引号里面的就无效啦。

               PS:当这个三引号在print后时,她是可以多行打印的哦,那就不是注释啦。 

     

五、脚本传参

     1.就是把用户输入的东西,让脚本捕获,跟shell的$1,$2类似

     2.还有上面说的python的三个模块,系统标准模块,开源的和自定义的,也是干这个用的。


六、pyc

     1.为什么要这个东西 ?它要编译成电脑认识语言,执行起来更快呀。要不每次都要翻译一下,多费时间

     2.什么时候会产生pyc文件?当你去调用另一个脚本的时候,他自动变成pyc了,就是编译后了

     3.pyc看的懂吗?肉眼看不懂,机器能看懂。

     4.pyc还能变回原来的py吗?需要软件协助,再加密也能给它打回原形。

     5.pyc可以移植到别的平台吗?当然可以

     6.py和pyc功能一样,先找pyc。


七、变量

     1.变量值存在哪?内存

     2.变量名有什么规定?字母,数字,下划线的组合,开头不能是字母;

     3.什么不能当变量名?pythong规定好的那些del,global啥的,用IDE软件会提示的啦;

     4.把变量2赋值给了变量1的名称,是同一个内存地址吗?虽然字符串赋值是重新开辟内存空间,但是他相当于把指针赋给了他,所以是同一个地址;

     5、字符串+号越多,开辟的内存空间越多

  


八、让用户输入

     1.python让用户输入,是用raw_input(),会有交互模式;

     2.让输入密码呢?还不能看见密码?那就得调用一个模块了,getpass.getpass(),和输入一样,括号里面可以写字符串:’输入用户名‘等等;

     3.其他的呢?还不知道


九、流程控制和缩进

     1.就是shell的if语句,和缩进一起使用,格式很重要哦

     2.可以嵌套吗?shell都行,python能不行吗

     3.if里的变量,外面能使用吗?不能,外面的能在里面用,反正不行;

  

十、数据类型

     1.数字都有哪些分类?int()整形,自己判断长短、float()浮点型,就是小数、complex()复数,几乎用不到;

     2.布尔值true和false用在哪?判断,循环用的最多;

     3.怎么转换成字符串?str()

     4.修改字符串还是那个地址空间吗?由于字符串是万恶的+号把字符数组拼接起来的,所以要在开辟一块空间才能够地方;

     5.print的时候能不用逗号拼接吗?可以用字符串格式化,引号里直接用%s(字符),%d(整数),%f(浮点)引用;

     6.strip()能移除空白,也能移除换行符;

     7.python的索引是从0开始,不是1哦;

     8.切片的时候,带:时,是包括左边,但不包括右边,也可以从右边开始,那就是负数了,如mystr[-1]就是最后一位,字符串,元组,列表都可用;

     9.列表不可更改

     10.continue是跳出本次循环,break是跳出所有循环;


十一、运算

     1.运算符

x+yx-y

加、减,“+”号可重载为连接符

x*yx**yx/yx%y

相乘、求平方、相除、求余,“*”号可重载为重复,“%”号可重载为格式化

<<=>>===<>!=

比较运算符

+=-=*=/=%=**=<<=>>=&=^=|=

自变运算符

x|y

按位或

x^y

按位异或

x&y

按位与

~x

按位取反

x<<x>>y

x向左或向右移y

is, is not

等同测试

in, not in

是否为成员测试

orandnot

逻辑运算符

x[i]x[i:j]x.yx(...)

索引,分片,限定引用,函数调用

(...)[...]{...}'...'

元组,列表,字典,转化为字符串

     2.位运算

          按位与运算&,两个数都写成0101样二进制比对,只有都是1才得1,   或运算,就是有1写1,没1写0.    异或:相同取0,不通取1

     3.in,我在不在你的里面,返回布尔值

     4.is,看是不是引用一个对象,也就是说是不是一个内存地址,看地址空间呀,用id()

     5.+=,前面的数加后面的数,再赋值给前面的值



十二、文本操作

     1.主要用r+,用于文件读写;

     2.file_obj.seek(0)跳到文件开头

     3.file_obj.write()全部写入

     4.file_obj.writeline()一行一行写入

     5.file_obj.close()关闭文件


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章