python基础1 - Go语言中文社区

python基础1


 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。


    Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。

python的优点
    创始人评价:简单、优雅、明确

    简单   体现在如果你的母语是英语,写python脚本就像写文章,很简单;
    优雅   体现在python的格式,比如缩进来确定代码块,可避免编程人员进行复杂的嵌套;
    明确    体现在解决问题的方法只有一种最优选项,而perl语言是每个问题有很多最优解,但不利于团队协作;
    有强大的第三方库模块,需要实现一复杂功能,只需要调用现有的库,可快速实现功能。20多年的发展,各种库都已  经  完备,比如:邮件库,爬虫库......
    可跨平台移植,java有Java的虚拟机,python同样;
     是一种面向对象的语言;
     是一种可扩展的语言(与C,C++,Java结合)
python的缺点
      代码执行速度慢,相比C语言,不过现在python的异步并发框架导致执行速度慢;
      python是开源的编程语言,代码不能加密,当然有相应的工具可以将python代码转换为exe的二进制可执行码,但是  反   解码也很容易;
python的应用
      软件开发游戏后台、搜索、图形界面
      网站
     科学运算
      系统管理
      脚本
      IT自动化工具

Python的版本

    Python 3.x引入了一些与Python 2不兼容的关键字和特性,在Python 2中,可以通过内置的__future__模块导入这些新内容。如果你希望在Python 2环境下写的代码也可以在Python 3.x中运行,那么建议使用__future__模块。

     虽然print语法是Python 3中一个很小的改动,且应该已经广为人知,但依然值得提一下:Python 2中的print语句被Python 3中的print()函数取代,这意味着在Python 3中必须用括号将需要输出的对象括起来。


为什么要使用#!/usr/bin/env python
脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它。
脚本用env启动的原因,是因为脚本解释器在linux中可能被安装于不同的目录,env可以在系统的PATH目录中查找。
#!/usr/bin/Python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;这样写程序的可移植性就差了,如果此路径下python命令不存在就会报错。
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。


ASCII,Unicode编码和utf-8编码,GB2312

ASCII编码:

ASCII编码是1个字节,美国人发明了计算机,用二进制存储数据,英文字母加各个字符一共128个,每8位存储一个字符,2^8=256,可通过  ord()  函数去查看字符对应的ASCII码。

Unicode编码:

Unicode编码通常是2个字节。ASCII码忽略了中文,韩文,日文等其他国家的文字,这个时候256个字符的对应关系明显是不够用的,这时候就用两个字节对应一个文字,2**16=65536。

UTF-8编码:

UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。


内存读取: Unicode编码

硬盘存取: utf-8编码

当存储数据到硬盘,需要考虑到节省空间的问题,所以采用utf-8格式进行存储;
当将数据读入内存时,统一一个编码格式便于操作,采用unicode编码格式;

字符的编码(encode) Unicode ->utf-8

字符的解码(decode) utf-8-> Unicode

python的解释器:
    当我们编写Python代码时,我们得到的是一个包含python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

cpython :

当我们从Python官方网站下载并安装好Python 3.5后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

ipython:

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的

Jython:

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

PyPy:

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术(Just-in-time compilation),对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

IronPython:

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。


python编程风格
python简洁明了的编程格式,如果不按照python既定的格式进行编写程序,直接报错,所以说,刚开始编写python代码会常常报错。这里我就用C语言和python语言做简单的比较。
C语言显示  hello world


从上面的代码我们会发现,C代码块是通过花括号  {}  做以区别。
python显示  hello world

 
编程风格如下:

       不要在行尾加分号;
        每行不超过80个字符;
        Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。
        增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。
python注释
        单行注释:  #  常被用作单行注释符号,  #  开头的行,其右边的任何数据都会被忽略,当做是注释。
        块注释: 需要批量文本或代码时,使用三引号  ''' '''  .,当然三引号也可以实现多行文本格式化打印。

简要描述Python的垃圾回收机制
      Python在内存中存储了每个对象的引用计数(。如果计数值变成0,那么相应的对象就会消失,分配给该对象的内存就会释放出来用作他用。
     PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数。当一个对象有新的引用时,它的ob_refcnt就会增加,当引用它的对象被删除,它的ob_refcnt就会减少.引用计数为0时,该对象生命就结束了。


练习:

编写一个程序,录入信息包括hostnaem ip username_year CPU Memory Manager_name ,如果使用年限超过10年,直接显示警告信息“该服务器使用年限太久”,如果年限不够显示主机信息。



创建一个python 脚本,实现下面功能,

1.要求用户名和密码

2.如果用户名和密码均正确时,显示“Welcome to user manager system”;

3.如果用户名和密码不正确时,重新输入。最多三次机会;

4.用户输入超过三次机会后,报错“你已经登陆三次,请10min以后再登陆”。

  


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qinwunan/article/details/73823940
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-13 15:36:24
  • 阅读 ( 1117 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢