标签:
免安装版:Portable Python
python详细介绍
优点
1、提供大量的内库;供你使用;
2、linux原装python
种类
pypy Cpython Jpython rubypython
python环境搭建安装
windows:
默认路径:C:\Python27
更新:
查看版本
python -v
更新Python
windows:
卸载重装即可
linux:
Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python
1、安装gcc,用于编译Python源码
yum install gcc
3、解压并进入源码文件
4、编译安装
./configure
make all
make install
5、查看版本
/usr/local/bin/python2.7 -V
6、修改默认Python版本
mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
7、防止yum执行异常,修改yum使用的Python版本
vi /usr/bin/yum
将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
python入门
第一个程序
linux写python代码要加下面的话
#!/usr/bin/env python 解释器声明(告诉系统这个脚本用python执行)
#如果写中文要用utf-8码;下面的两行都是使用utf-8码;统一要求使用第一个;
# -*- coding:utf-8 -*-
# coding:utf-8
以后所有python脚本都用下面这句
#!/usr/bin/env python
# -*- coding:utf-8 -*-
python3.0以后默认编码是utf-8
三种编码规则
ascii unicode utf-8
注释
单行注释;加格井号;如
# coding:utf-8
多行注释;用"""和"""括起来(做说明用)
捕获参数
impotr sys #impotr导入模块(后面可以跟脚步的名字;如:m.py那么就写成impotr m)
print sys.argv #使用argv模块;捕获python解释器后面所有参数,中间用空格隔开,保存到集合;
如:vim hello.py在这个文件里写print sys.argv
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
print sys.argv
在外面执行这个脚本;捕获python解释器后面所有参数,中间用空格隔开;
[root@localhost python]# python hello.py
[‘hello.py‘]
[root@localhost python]# python hello.py zhangyu
[‘hello.py‘, ‘zhangyu‘]
字节码
如:
[root@localhost python]# vim m.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
print "张禹,你好"
在hello.py里导入m.py文件
[root@localhost python]# vim hello.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#impotr导入模块(后面可以跟脚步的名字;如:m.py那么就写成impotr m)
执行python hello.py看其结果;是先引用的m.py在执行hello.py内容
[root@localhost python]# python hello.py
张禹,你好
yaoshen
使用查看命令;发现多了m.pyc文件;当你调用的模块(m)执行完;会自动生产pyc字节码文件;
[root@localhost python]# ll
总用量 12
-rwxrwxrwx. 1 root root 368 10月 27 22:27 hello.py
-rwxrwxrwx. 1 root root 69 10月 27 22:22 m.py
-rw-r--r--. 1 root root 124 10月 27 22:27 m.pyc
m.pyc以pyc结尾的是字节码文件;当内容相同;.pyc文件的优先级高;当.py文件内容更改;则从新生成.pyc字节码文件
变量-声明
1、数字字母和下划线;
2、变量名的第一个字符不能是数字;
3、声明变量的时候;不能用系统内置关键字;
变量-赋值
name1 = "sishen"
name2 = name1
name1 = "sile"
结果:name1就等于sile;name2就等于sishen;
对于字符串的时候;name1变的时候;name2不变
字符串特性;一旦修改;重新创建(重新分配内存空间);
数字类型是-5到257在一个内存空间
输入输出
raw_input("请输入用户名:") python内置函数;接收用户的输入东西的;通过读取控制台输入或与用户交互;如下面的举例
name = raw_input("请输入用户名:")
import getpass getpass内置模块让raw_input输入的内容不可见
pwd = getpass.getpass("请输入密码:")
流程控制
#if else 如果 否则
name = raw_input("请输入用户名:")
if name == "zhangyu": 两个等号是值和值对比;is内存地址对比;
print "登录成功"
else:
print "登录失败"
--------------------------------------
eric普通 tony超级 alex超神
#如果是eric;输出普通
#如果是tony;输出超级
#如果是alex;输出超神
下面的代码是一层一层的往下判断;
基础上是
如果1的;输出;
否则如果2;输出;
否则如果3;输出;
否则;输出
#!/usr/bin/env python
# -*- coding:utf-8 -*-
name = raw_input("请输入用户名:")
if name == "eric":
print "普通"
elif name == "tony":
print "超级"
elif name == "alex":
print "超神"
else:
print "非法"
-----------------------------------------------------------
练习要求
eric普通123
tony超级123
alex超神123
name = raw_input("请输入用户名:")
pwd = getpass.getpass("请输入密码:")
if name == "eric" and pwd == "123":
print "登录成功;普通"
elif name == "tony" and pwd == "123":
print "登录成功;超级"
elif name == "alex" and pwd == "123":
print "登录成功;超神"
else:
print "登录失败"
还有一种写法
name = raw_input("请输入用户名:")
pwd = getpass.getpass("请输入密码:")
if pwd == "123":
if name == "eric":
print "登录成功;普通"
elif name == "tony":
print "登录成功;超级"
elif name == "alex":
print "登录成功;超神"
else:
print "登录失败"
else:
print "登录失败"
###################################################
数据类型
两部分
1、单值
1)数字
整型 3714
长整型 很大的整数
浮点型 3.14带小数点的
复数
2)字符串
字符串格式化
1]
"字符串 %s %d" %("s代表的字符串", d代表的数字)
name = "i am %s" %"alex"
name = "i am %s ,age %d" % ("alex",73)
%s字符串是占位符;就是代表后边的alex
%d数字是占位符;就是代表后边的73
name = "i am %s ,age %d"
name %("alex", 123)
如:
>>> name = "i am %s" %"alex"
>>> name
‘i am alex‘
2]
name = "i am {0},age {1}"
name.format("alex", 999)
new_name = name.format("alex", 999)
print new_name
‘ ‘ 单行字符串
" " 单行字符串
""" """ 多行字符串|也可以当字符串
print """abc
def
g
"""
索引
如:
name = "alex"
#name[0]="a" 第一个字符用0表示;第一个字符是a
print name[0] 打印第一个字符
print name[0:2] 打印前两个字符(打印小于2的字符;如:al)
print name[0:] 打印到结尾
print name[-1] 打印最后一个字符
print len(name) 得到多少个字符;下标是从0开始
print name[-1] == name[len(name)-1]
print name.strip() 去除两头的空格
print name.lstrip() 去除左边的空格
print name.rstrip() 去除右边的空格
分割
name.split(",")
3)布尔值 真假(True,False)1为真;0为假
---------------------------------------------------------
2、集合
1)列表 字符串数组 可修改
创建列表
name_list = ["alex","seven","eric"]
或
name_list = list(["alex","seven","eric"])
追加:append
name_list.append("abc") 给name_list列表里追加abc
删除:del
del name_list[0] 删除第一个字符
长度:len
len(name_list)
"_".join(name_list) 从新编译分隔符
查看在与不在:in
"alex" in (name_list)
分割
name.split(",") 以,分割
name = "a b c"
2)元组
元祖不可修改
("alex","seven","eric")
3)字典
字典:dict:
字典无序存储
特殊的for循环
用{}括起来
person ={
"name": "alex",
"age": 19,
"gender": "不知道",
}
person ["name"]
for k,v in petrson.items(): 字典的每一个元素
print k
print v
print "==========="
person.keys() 所以key;列表
person.values() 所以valu;列表
person.items() 所有的元素;仅for循环使用;将元素赋值给k,v
4)哈希表
重要的;
都有切片;索引(-1);len()
包含,循环
str字符串
重新开辟空间
list表
修改后内存地址不变
tuple元组
不允许修改
循环
name_list = ["alex","seven","eric"]
for ele in name_list:
print ele
#1,alex
#2,seven
#3,eric
name_list = ["alex","seven","eric"]
for ele in name_list:
if ele == "alex":
print "kkk"
continue 重新开始下个循环
if ele == "eric":
print "kkk"
break 不想让for循环继续;就用这个
while循环
while 条件: 如果条件是真的;永远循环;
print "11111"
while True: 死循环
print "true"
while False:
print "false"
continue 【立即结束本次循环;用于while和for】
break 【立即跳出循环结构】
pass 【空操作;为了节省不必要的代码】
-----------------------------------------------------------
文件里写读
1、找到文件
E:/log
2、打开文件
open
file_obj = file("文件的路径","模式")
模式:r读 w写 a追加内容 r+读写 w+写读
3、文件操作、读写
file_obj.read() 将所有读入内存
file_obj.readlines() [行,行]读入
for line in file_obj.xreadlines(): 一行一行的读
print line
for line in file_obj: 每次循环;只读一行;避免全部读入内存
file_obj.write() 写入文件
file_obj.writeline() 以行模式写入
4、文件关闭
file_obj.close()
python第一天
标签:
原文地址:http://www.cnblogs.com/zy19880115/p/4924482.html