码迷,mamicode.com
首页 > 编程语言 > 详细

python第一天

时间:2015-10-30 22:54:03      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:

免安装版:Portable Python
 
 
python详细介绍
    优点
        1、提供大量的内库;供你使用;
        2、linux原装python
    种类
pypy    Cpython    Jpython    rubypython
 
python环境搭建安装
        windows:
        下载安装包https://www.python.org/
        默认路径:C:\Python27
        更新:
        查看版本
        python -v
 
更新Python
    windows:
        卸载重装即可
    linux:
        Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python
        1、安装gcc,用于编译Python源码
            yum install gcc
        2、下载源码包,https://www.python.org/ftp/python/
        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)
import m
print "yaoshen"
执行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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!