'''
python入门第一课
Python简介：
        Python 是一种解释型语言： 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

        Python 是交互式语言： 这意味着，您可以在一个Python提示符，直接互动执行写你的程序。

        Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

        Python 是初学者的语言：Python 对初级程序员而言，是一种伟大的语言，它支持广泛的应用程序开发，从简单的文字处理到 WWW 浏览器
        再到游戏。

    Python历史：
        2000年10月，Python 2.0被引入。这个版本包括列表推导，和一个完整的垃圾收集器，并且它支持unicode。
        随着Python 3.0（也称为“Python 3000”和“Py3K”）的发布，Python在下一个主要版本之前的版本2.x中再繁荣了8年。
        Python 3不向后兼容Python 2.x. Python 3的重点在于删除重复的编程结构和模块，从而实现或接近实现Python的法则：
        “应该有一个 - 最好只有一个 - 显而易见的方法。”

    Python优缺点：
        优点：
        1.易于学习：Python有相对较少的关键字，结构简单，和一个明确定义的语法，学习起来更加简单。

        2.易于阅读：Python代码定义的更清晰。

        3.易于维护：Python的成功在于它的源代码是相当容易维护的。

        4.一个广泛的标准库：Python的最大的优势之一是丰富的库，跨平台的，在UNIX，Windows和Macintosh兼容很好。

        5.互动模式：互动模式的支持，您可以从终端输入执行代码并获得结果的语言，互动的测试和调试代码片断。

        6.可移植：基于其开放源代码的特性，Python已经被移植（也就是使其工作）到许多平台。

        7.可扩展：如果你需要一段运行很快的关键代码，或者是想要编写一些不愿开放的算法，你可以使用C或C++完成那部分程序，
        然后从你的Python程序中调用。

        8.数据库：Python提供所有主要的商业数据库的接口。

        9.GUI编程：Python支持GUI可以创建和移植到许多系统调用。

        10.可嵌入: 你可以将Python嵌入到C/C++程序，让你的程序的用户获得"脚本化"的能力。

        缺点：
        1.速度慢，Python 的运行速度相比C语言确实慢很多，跟JAVA相比也要慢一些，因此这也是很多所谓的大牛不屑于使用Python的主要原因，
        但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的，必须借助测试工具才能体现出来，比如你用C运一个程序花了0.1s,
        用Python是0.01s,这样C语言直接比Python快了10s,算是非常夸张了，但是你是无法直接通过肉眼感知的，因为一个正常人所能感知的时间
        最小单位是0.15-0.4s左右，哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求，除非你要写对速度要求极高的搜索
        引擎等，这种情况下，当然还是建议你用C去实现的。

        2.代码不能加密，因为PYTHON是解释性语言，它的源码都是以名文形式存放的，不过我不认为这算是一个缺点，如果你的项目要求源代码必须
        是加密的，那你一开始就不应该用Python来去实现。

        3.线程不能利用多CPU问题，这是Python被人诟病最多的一个缺点，GIL即全局解释器锁（Global Interpreter Lock），是计算机程序
        设计语言解释器用于同步线程的工具，使得任何时刻仅有一个线程在执行，Python的线程是操作系统的原生线程。在Linux上为pthread，
        在Windows上为Win thread，完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程，以及多条用户程序的执行线程。
        即使在多核CPU平台上，由于GIL的存在，所以禁止多线程的并行执行。关于这个问题的折衷解决方法，我们在以后线程和进程章节里再进行
        详细探讨。

    Python应用领域：
        云计算: 云计算最火的语言， 典型应用OpenStack
        WEB开发: 众多优秀的WEB框架，众多大型网站均为Python开发，Youtube, Dropbox, 豆瓣等，典型WEB框架有Django
        科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
        系统运维: 运维人员必备语言
        金融：量化交易，金融分析，在金融工程领域，Python不但在用，且用的最多，而且重要性逐年提高。原因：作为动态语言的Python，语言结构清晰简单，库丰富，成熟稳定，科学计算和统计分析都很牛逼，生产效率远远高于c,c++,java,尤其擅长策略回测
        图形GUI: PyQT, WxPython,TkInter


搭建编程环境
    windows下搭建python环境步骤：
        1.首先访问http://www.python.org/download/去下载合适的python版本。
        2.安装下载包，一路next。
        3.为计算机添加安装目录搭到环境变量，如图把python的安装目录添加到path系统变量中即可。
        4.测试python安装是否成功，cmd打开命令行输入 python 命令，出现了python的版本号以及其他信息
        5.Hello World！ 按照很多资料上写的，输入 print ('Hello World!'）
        6.安装Pycharm集成开发工具


    windows环境从终端运行Python程序
        DOS命令如下展示：
        # C:\Users\MyPC>python
        # Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
        # Type "help", "copyright", "credits" or "license" for more information.
        # >>> print('hello world')
        # hello world

    Pycharm常用快捷键：
        1、Ctrl + Enter：在下方新建行但不移动光标；

        2、Ctrl + /：注释(取消注释)选择的行；

        3、Ctrl + E：可打开最近访问过的文件；

        4、Ctrl + D ：向下复制当前行；

        5、Ctrl + N：查找所有的类的名称；

        6、Ctrl + Y：删除当前行；

        7、Ctrl + Alt + L：格式化代码(与QQ锁定热键冲突，关闭QQ的热键)；

        8、Ctrl + Alt + I：自动缩进行；

        9、Ctrl + Shift + +：展开所有的代码块；

        10、Ctrl + Shift + -：收缩所有的代码块；

        11、Ctrl + Shift + F：打开最近编辑过的文件；

        12、Ctrl + Shift + V：历史粘贴版；

        13、Ctrl + Shift + N 查找项目中的任何文件；

        14、Ctrl + Shift + F10　　初次run当前程序；

        15、Ctrl + Shift + L　　格式化代码 PEP8；

        16、Alt + Enter：优化代码，提示信息实现自动导包；

        17、Alt + 1： 　　关闭tab标签；

        18、Alt + 4：　　关闭运行结果；

        19、Alt + Shift + Q：更新代码到远程服务器；

        20、Shift + Enter： 任意位置换行；

        21、shift连按两下：万能搜索；

        22、Shift + F6：　　重命名变量名/文件名；

        23、Shift + F10：　　run当前程序(非初次)；

        24、Shift + Tab：　　对单行或选中多行撤销回退一个tab；

        25、Shift + Enter：　　任意位置换行(快速在当前行下创建一个空行)；

        26、Shift + Alt + ↑/↓：　　向上/向下移动任意行；


    注释
        注释的作用：　
            注释就是对代码的解释和说明。目的是为了让别人和自己很容易看懂。为了让别人一看就知道这段代码是做什么用的。正确的程序注释一般
            包括序言性注
            释和功能性注释。序言性注释的主要内容包括模块的接口、数据的描述和模块的功能。模块的功能性注释的主要内容包括程序段的功能、
            语句的功能和数据的状态。

             单行注释:( 行注释)
                 在代码上面加注释 # 后面跟一个空格
                 语法格式： #[空格]说明性文字信息
　　              注:可放一行代码的后面进行说明
            　　  添加快捷键：  Ctrl+/
    　            取消快捷键：  同上


             多行注释:(块注释)
                 按住shift + 点击三次"键位    （英文状态下）

                 语法格式： """说明性文字信息"""

　　              注：放在函数下面第一行、主程序第一行进行程序说明

                  快捷键：<无>

                 或者 直接点击三次"键位,再按enter键

'''

print('hello world!')

print('hello python')

