热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python开发学习-day01(python安装与版本、字符串、字典、运算符、文件)

*:first-child{margin-top:0!important;}body*:last-child{margin-bottom:0!important;

 

pytho自动化开发 day01

Date:2015.12.26

作者注:

  python学习旅程正式开启,这一天将是一个新的开始。希望我们在python开发的道路上多多积累、多分享!

一、python简介

python应用 
    Disgus Voitze Yelip Mozilla Quora  Redit
    豆瓣、知乎、sohu、腾讯、网易、金山、雅虎、Facebook、 Instagram(图片分享)
python2与python3比较
    经过多年的发展,python3已经得到更多的第三方优秀函数库兼容,对比python2来说,python3表现出来的精简高效特性让开发者们跃跃欲试。
    另外,python2.7.11作为python2版本的最后一个版本,不再有新版本推出,这样官方更多的引导开发者快速的向python3版本上进行转移。
    在本次学习的过程中,我们会穿插在python2和python3两个版本之间进行学习,后续的测试代码在开头会明确标记python的使用版本。相关注释都会对python2和python3的差异进行描述。

二、python安装

1.windows端安装
    安装包下载地址:
        python2.7版本:
            https://www.python.org/ftp/python/2.7.11/python-2.7.11.amd64.msi
        python3.5版本:
            https://www.python.org/ftp/python/3.5.1/python-3.5.1-amd64.exe  #安装版
            https://www.python.org/ftp/python/3.5.1/python-3.5.1-embed-win32.zip #免安装版
    安装步骤:
        使用可执行程序进行安装,按照流程进行安装即可,注意在安装的时候选择“安装路径”和一些必要的插件,比如pip、easy_install等
        使用免安装的文件(可嵌入的)进行环境配置:
        
2.linux端安装
    centos6等常用系统自带的python版本为2.6,有特殊需求的朋友可能需要升级到python2.7或者python3版本。下面链接以python2.7.8为例进行编译安装。
        http://swht1278.blog.51cto.com/7138082/1728427
    提供一下python版本的下载地址:
        python2.7.11版本:
            https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
        python3.5版本:
            https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
3.Ubuntu端安装
    最新版本的Ubuntu系统(15.04等)已经自带了python2.7.9和python3.4.5两个版本的python环境,我们只需要在shell终端输入python2或python3进行调用即可。老版本的系统升级python环境需要以下操作:
        # 增加python源
        sudo add-apt-repository ppa:fkrull/deadsnakes
        # update 软件列表
        sudo apt-get update
        # 安装python3
        sudo apt-get install python3.5

三、基础概念

变量:Python 是动态类型语言, 也就是说不需要预先声明变量的类型。变量是对象的引用,变量只是将指针指向了对象所在的内存地址。变量的类型和值在赋值那一刻被初始化。
变量起名:
    1.显式-->通俗易懂
    2.nums_of_alex_gf = 19 
    3.NumsOfAlexGf = 20  驼峰写法
    4.中横线不能作为变量的命名字符
    5.数字不能作为开头,但可以在中间或者结尾
    6.特殊字符不能作为变量名的组成部分
    7.不能使用空格
    8.关键字不能声明为变量

四、运算符

算术运算符
    +  -  *  /   //  %  **
    /:传统除法,将执行地板除法,
    //:浮点除法,即去尾法除法,保留位数与除数和被除数的小数位数有关 (取整除,返回商的部分)
    **:平方运算
比较运算符
    <<=  >  >=  ==  !=   <>
    不等于:!=   <>
    返回值是:True 和 False
赋值运算符
    >>> counter = 0 
    >>> miles = 1000.0 
    >>> name = 'Bob' 
    >>> counter = counter + 1 
    >>> kilometers = 1.609 * miles 
    >>> print '%f miles is the same as %f km' % (miles, kilometers)
    1000.000000 miles is the same as 1609.000000 km
    支持简写:n=n*3 -> n*=3  但不支持自增自减,因为“-” 和”+”是单目字符,--n -> -(-n)n
位运算符
    &   按位与     (a&b)
    |   按位或 (a|b)
    ^   按位异或    (a^b)
    ~   按位取反    (~a)
    <<左移动  a<<1 整体向左移动,结果是原来数值的2倍
    >>  右移动    a>>1 整体向右移动,结果是原来数值的1/2
逻辑运算符
    and 布尔“与”    同真为True
    or  布尔“或”    同假为False
    not 布尔“非”    非True即False
成员运算符
    in  如果在指定序列中找到指定的值,返回True
    not in 如果在指定序列中没找到指定的值,返回False
身份运算符
    is  判断两个标识符是不是引用自同一个对象
        type(names) is list 判断某个变量值的类型(list、int、dic)
    is not 判断两个标识符是不是引用自不同对象
View Code

五、字符编码

python2 中在输入中文字符的时候会报字符编码的错误,在python3中已经引入了Unicode(万国码、统一码、单一码),它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定所有的字符和符号最少由16位二进制来表示(2个字节),即2 ** 16 = 65536
UTF-8,是对Unicode编码的压缩和优化,它不再使用最少2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存,欧洲的字符用2个字节保存,东亚的字符用3个字节保存

示例
python2
    #!/usr/local/env python2
    # -*- coding: utf-8 -*-  # 声明使用的字符类型,否则会报错
    '''
    @swht
    '''
    print "你好!"

python3
    #!/usr/local/env python3
    '''
    @swht
    '''
    print ("你好!")

总结:在python3中完全不用考虑字符编码的问题,python解释器会自行处理字符类型的问题

六、python流程控制

流程控制分为两大类:条件判断和循环
其中循环又分为两类:for循环和while循环
条件判断和循环可以单独存在,也可以嵌套使用,以处理更为复杂的逻辑问题。

下面会从if条件判断for循环while循环进行代码示例:

if_ex.py

#!/usr/bin/env python3
'''
@swht
'''
LuckyNum = 9
# 让用户输入一个数值与指定的值进行比较,当然这里没有处理用户输入为空的情况 # strip() 可以截取用户输入字符串首尾的空格
UserInputNum = int(input("请从1-100之间选择一个数字输入:").strip())
if UserInputNum > LuckyNum:
    print("你输入的数字比我的LuckNum要大哦!")
elif UserInputNum 

while_ex.py

#!/usr/bin/env python3
'''
@swht
'''
LuckyNum = 9
# 设置一个标志位,用于程序判断退出循环
flag = True
while flage:
UserInputNum = int(input("请从1-100之间选择一个数字输入:").strip())
if UserInputNum > LuckyNum:
    print("你输入的数字比我的LuckyNum要大哦!")
elif UserInputNum 

for_ex.py

#!/usr/bin/env python3
'''
@swht
'''
LuckyNum = 9
for count in range(3):
    UserInputNum = int(input("请从1-100之间选择一个数字输入:").strip())
    if UserInputNum > LuckyNum:
        print("你输入的数字比我的LuckyNum要大哦!")
    elif UserInputNum 

对比break和countnue

break是结束整个循环体,continue是结束单次循环

示例
    #!/usr/local/env python3
    '''
    @swht
    '''
    x = 0
    while x <10:
        if x ==3:
            break
        x += 1
        print("x=%s" % x)
    输出结果:   x=1
                x=2
                x=3
    直接退出了整个while循环

七、格式化输出

使用'''string'''可以很方便的将多行内容进行注释,另外这个符号还有一个功能,那就是文档描述的功能。一般而言,在程序的前面后有一个文档说明,包括作者信息,版本信息,功能等

#!/usr/bin/env python
'''
@swht
'''

name = input("name:")
age = input("age:")
job = input("job:")

print("Information of:" + name + "\nname:" + name + "\nage:" + age + "\njob:" + job)
print("Information of %s\nname:%s\nage:%s\njob:%s" %(name,name,age,job))
print('''
    Infomation of %s
             name:%s
              age:%s
              job:%s
    ''' % (name,name,age,job))

八、数据类型:

列表转换成元组:tuple(name_list)

元组转换成列表:list(元组_name)

    1.数字
        int     整型
        long    长整型
        float   浮点型
    2.布尔
        1   真
        0   假
    3.字符串
            stinglist = “Hello World”
        字符串操作:
            (参考:http://www.cnblogs.com/zhxiang/p/3385242.html
            http://www.jb51.net/article/47956.htm)
            移除空白:stinglist.strip()
            移除特殊字符:stinglist.lstrip().rstrip(',')
            分割:>>> stringlist[2]
                     'l'
            长度:>>> len(stringlist)
                     11
            索引:>>> stringlist.index('W') #字母‘W’所在的索引值
                     6
            切片:>>> stringlist[0:3] #顾前不顾尾
                     'Hel'
            字符串在输出时的对齐:
                >>> stringlist[0:3]
                'Hel'
                >>> stringlist[0:3].ljust(5) #ljust(width,[fillchar]) fillchar为填充字符,默认为空格
                'Hel  '
            字符串拼接:
                >>> stringlist += s
                >>> stringlist
                'Hello Worldab,cde,fgh,ijk'
            大小写转换:
                >>>stringlist.lower() #小写
                   'hello world'
                >>> stringlist.upper() #大写
                    'HELLO WORLD'
                >>> stringlist.swapcase() #大小写互换
                    'hELLO wORLD'
                >>> stringlist.capitalize() #首字母大写
                    'Hello world' 
                >>> string.capwords(stringlist) #以空格分割,每个单词首字母大写
                    'Hello World'
            字符串翻转:
                >>> s
                'sdsds sdsdsff'
                >>> s = s[::-1]
                >>> s
                'ffsdsds sdsds'
            字符串查找:
                >>> stringlist.find('World')
                    6
            判断是否为整型:
                >>> stringlist.isdigit()
                    False
            判断字符串是否为空格:
                >>> stringlist.isspace()
                    False
            转换成列表:
                >>> stringlist.split() #默认以空格为分割
                    ['Hello', 'World']

    4.列表(dir(name_list)获取列表操作帮助)
        参考:http://www.jb51.net/article/46768.htm
        name_list = ['alex', 'sddkd', 'shdjsjd', 'shen', 'swht', 'test']
        移除空白:name_list.strip()
        获取元素:name_list[index_num]
        索引:name_list.index("swht")  获取指定元素的索引值
        追加:name_list.append("test") 在列表后面追加一个元素
        插入:name_list.insert(3,"ssdd") 在索引值3后面插入新的元素
        删除:name_list.pop() 删除最后一个元素
             name_list.remove("test") 删除指定的元素
        排序:name_list.sort()  对元素按照ASCII码进行排序
            python3 里面不能同时sort int 和 str类型
        反转顺序:name_list.reverse()  对列表中的元素进行反转操作
        切片:name_list[0:3]  切取索引值从0-2的值(切片顾头不顾尾)
        扩展:name_list.extend(name_list2) 在一个列表后面追加另一个列表的元素,或者追加一个变量中的单个字符
    5.元组
        >>> namelist = ("swht","test")
        >>> type(namelist)
            
        索引:>>> namelist.index('swht') #查找某个字符串的索引值
                 0
        统计:>>> namelist.count('swht') #统计某个字符串出现的次数
                 1
    6.字典(无序)
        参考:http://www.jb51.net/article/47990.htm

        不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
        键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行

        dict = {"swht":"test123","shen":"test124","test":"test125"}
        访问字典里的值:
            >>> dict["swht"]
                'test123'
        增加字典里的值:
            >>> dict["alex"] = "test126"
            >>> dict
            {'test': 'test125', 'shen': 'test124', 'swht': 'test123', 'alex': 'test126'}

        删除字典当中的元素:
            >>> del dict["test"]
            >>> dict
            {'shen': 'test124', 'swht': 'test123', 'alex': 'test126'}
            >>>             
        清空字典里的所有条目:
            >>> dict.clear()
            >>> dict
            {}
        删除字典:del dict

九、文件操作  参考链接:http://www.cnblogs.com/songqingbo/p/5102618.html

简单操作:
    filename = open("文件路径","模式")    #打开文件
    filename.write('内容')    #往文件中写入内容
    filename.read()     #一次性加载文件中的内容到内存
    filename.readlines()    #一次性加载所有的内容到内存,并根据行分割成字符串
    filename.close()    #关闭文件句柄
打开文件的模式:
  r:以只读的模式打开文件
  w:打开一个文件只用于写入,如果文件已存在,将会覆盖
  a:打开一个文件在后面追加内容。文件不存在,将会新建一个文件并追加内容
  w+:打开一个文件进行读写操作,如果文件存在,则将内容覆盖;如果文件不存在,将创建新文件进行写操作

十、作业

作业一:编写登录接口

    http://www.cnblogs.com/songqingbo/p/5091808.html
作业二:多级菜单    
  
    http://www.cnblogs.com/songqingbo/p/5091830.html

 


推荐阅读
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 在Windows10系统上使用VMware创建CentOS虚拟机的详细步骤教程
    本文详细介绍了在Windows10系统上使用VMware创建CentOS虚拟机的步骤,包括准备条件、安装VMware、下载CentOS ISO文件、创建虚拟机并进行自定义配置、设置虚拟机的ISO与网络、进行安装和配置等。通过本文的指导,读者可以轻松地创建自己的CentOS虚拟机并进行相应的配置和操作。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
  • Window10+anaconda+python3.5.4+ tensorflow1.5+ keras(GPU版本)安装教程 ... [详细]
author-avatar
佳人蔚虹的小资心情_396
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有