您的位置:首页 > 编程语言 > Python开发

python学习笔记(一)

2015-10-29 23:04 495 查看
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+y,x-y加、减,“+”号可重载为连接符
x*y,x**y,x/y,x%y相乘、求平方、相除、求余,“*”号可重载为重复,“%”号可重载为格式化
<,<=,>,>=,==,<>,!=比较运算符
+=,-=,*=,/=,%=,**=,<<=,>>=,&=,^=,|=自变运算符
x|y按位或
x^y按位异或
x&y按位与
~x按位取反
x<<,x>>yx向左或向右移y位
is, is not等同测试
in, not in是否为成员测试
or,and,not逻辑运算符
x[i],x[i:j],x.y,x(...)索引,分片,限定引用,函数调用
(...),[...],{...},'...'元组,列表,字典,转化为字符串
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()关闭文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python笔记