zoukankan      html  css  js  c++  java
  • Python学习日记(一)——初识Python

    Python的优势

    互联网公司广泛使用python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web等。

    Python与其他语言

    C和Python、Java、C#:

      C  语言:代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作

      其他语言:代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码后,再在处理器上执行

      对于使用:Python的类库齐全并且使用简洁,如果实现同样的功能,Python 10行代码可以解决,C可能需要100行代码。

      对于速度:Python的运行速度相较于C,肯定要慢

    Python和Java、C#、PHP等

      对于使用:Linux原装Python,其他语言没有;另外以上几门语言都有非常丰富的类库支持

      对于速度:Python在速度上可能稍有逊色

    所以,Python的其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。

    Python的种类

    Cpython、Jyhton、Iron Python、PyPy、RubyPython、Brython

    程序员只要会Python的规则,然后可以用Cpython执行代码,也可以用Jython执行代码

    对于Jyhton,会先办你的py代码编译成为Java认识的中间代码,Java虚拟机就可移执行这个中间代码。

    •  Cpython
          Python的官方版本,使用C语言实现,使用最为广泛,CPython会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在虚拟机上
    • Jyhton
          Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
    • IronPython
          Python的C#实现,IronPython将Python代码编译成C#字节码,然后CLR上运行。(与Jython类似)
    • PyPy
          Python实现的Python,将Python的代码直接编译成机器码

    Python环境

    安装Python

      Windows:

    1、下载安装包
        https://www.python.org/downloads/
    2、安装
        默认安装路径:C:python27
    3、配置环境变量
        【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
        如:原来的值;C:python27,切记前面有分号
    

      Linux:

    无需安装,原装python环境
    

    更新Python

      windows:

    卸载重装即可

      Linux:

     linux的yum依赖自带Python,为防止错误,此处更新其实就是在安装一个Python

    查看默认Python版本
    python -V
      
    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 入门

    一、第一句Python代码

    在/home/dev/目录下创建hello.py文件,内容如下:

    print ('hello,world')
    

     执行hello.py文件,即: python  /home/dev/hello.py

    二、解释器

    上一步中执行 python  /home/dev/hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。

    如果想要类似于执行shell脚本一样执行python脚本,例:./hello.py,那么就需要在 hello.py文件的头部指定解释器,如下:

    #!/usr/bin/env python
      
    print "hello,world"
    

      这样,执行:./hello.py 即可。

      PS:执行前需要给予hellp.py执行权限, chmod  755  hello.py

    三、内容编码

    python解释器在加载  .py 文件中的代码时,会对内容进行编码(默认ASCILL)

    • ASCII(美国标准信息交换码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其它西欧语言,其最多只能用 8 位(1个字节)来表示,即2^8 = 256,所以,ASCII码最多只能表示 256 个符号。
      显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
    • Unicode(万国码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
      注:此处说的的是最少2个字节,可能更多
    • UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

    python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),但是ascill不能显示中文,所以要告诉python解释器,用什么编码来执行源代码,即:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    print "你好,世界"
    

    四、注释

      单行注释:#  被注释内容

      多行注释:"""  被注释内容  """

    五、执行脚本传入参数

    Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

    • Python内部提供的模板
    • 业内开源的模块
    • 程序员自己开发的模块

    Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    import sys
      
    print sys.argv
    

    六、pyc 文件

    执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的.pyc文件,该文件就是Python解释器编译之后产生的字节码。

    PS:代码经过编译可以产生字节码,字节码通过反编译也可以得到代码

    七、变量

    1、声明变量

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    name = "houzhaohui"
    

    上述代码声明了一个变量,变量名为: name,变量name的值为:"houzhaohui"

    变量的作用:昵称,其代指内存里某个地址中保存的内容

    变量定义的规则:

      • 变量名只能是 字母、数字或下划线的任意组合
      • 变量名的第一个字符不能是数字
      • 以下关键字不能声明为变量名
        ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

    2、变量的赋值

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    name1 = "houzhaohui"
    name2 = "sullivan"
    

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    name1 = "houzhaohui"
    name2 = name1
    

    八、输入

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    # 将用户输入的内容赋值给 name 变量
    name = raw_input("请输入用户名:")
      
    # 打印输入的内容
    print name

    输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    import getpass
      
    # 将用户输入的内容赋值给 name 变量
    pwd = getpass.getpass("请输入密码:")
      
    # 打印输入的内容
    print pwd
    

     九、if循环

    if 条件:
        内容一    
        内容二
    else:
        内容三
    #内容一二的缩进 必须 相同
    

    示例

    #!/usr/bin/env python
    #-*- coding:UTF-8 -*-
    
    
    name = raw_input("Username:")
    pwd = raw_input("Password:")
    
    if name == "alex" and pwd == "123":
    	print('yes')
    else:
    	print('no')
    #if符合后面的条件就执行下面的内容,不符合就执行else的内容
    

    十、while循环

    1、基本循环

    while 条件:
         
        # 循环体
     
        # 如果条件为真,那么循环体则执行
        # 如果条件为假,那么循环体不执行
    

    2、break

    break用于退出所有的循环

    while True:
        print "123"
        break
        print "456"
    

    3、continue用于退出当前循环,继续下一次循环

    while True:
        print "123"
        continue
        print "456"
    

    练习题

    1、使用while循环输入 1 2 3 4 5 6     8 9 10

    #!/usr/bin/env python
    #-*- coding:UTF-8 -*-
    
    start = 1
    while True:
    	if start == 7:
    		start += 1
    		continue
    	print(start)
    	if start == 10:
    		break
    	#start = start + 1
    	start += 1
    print('end')

    2、求1-100的所有数的和

    start = 1
    sum = 0
    while start < 101:
    	sum = sum + start
    	start += 1
    print(sum)

    3、输出 1-100 内的所有奇数

    #!/usr/bin/env python
    #-*- coding:UTF-8 -*-
    start = 1
    while start < 101:
    	if start%2 == 1:
    		print(start)
    	start += 1

    4、输出 1-100 内的所有偶数

    #!/usr/bin/env python
    #-*- coding:UTF-8 -*-
    start = 1
    while start < 101:
    	if start%2 == 0:
    		print(start)
    	start += 1

    5、求1-2+3-4+5 ... 99的所有数的和

    #!/usr/bin/env python
    #-*- coding:UTF-8 -*-
    start = 1
    sum = 0
    while start < 100:	
    	temp = start % 2
    	if temp == 1:
    		sum = sum + start
    	else:
    		sum = sum - start
    	start += 1
    print(sum)

    6、用户登陆(三次机会重试)

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    i = 0
    while i < 3:
    	user = raw_input("username:")
    	pwd = raw_input("password:")
    	if user == "hou" and pwd == "hou":
    		print('yes')
    		break
    	else:
    		print('try again')
    	i += 1
  • 相关阅读:
    C#操作REDIS例子
    A C# Framework for Interprocess Synchronization and Communication
    UTF8 GBK UTF8 GB2312 之间的区别和关系
    开源项目选型问题
    Mysql命令大全——入门经典
    RAM, SDRAM ,ROM, NAND FLASH, NOR FLASH 详解(引用)
    zabbix邮件报警通过脚本来发送邮件
    centos启动提示unexpected inconsistency RUN fsck MANUALLY
    rm 或者ls 报Argument list too long
    初遇Citymaker (六)
  • 原文地址:https://www.cnblogs.com/houzhaohui/p/7244310.html
Copyright © 2011-2022 走看看