python自动华 (一)

Python自动化 【第一篇】:Python简介和入门

Python简介:

一、什么是python

  Python是一门动态解释性的强类型定义语言

  pythonde 特点:“优雅”、“明确”、“简单”。

二、Python由来

  python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

三、目前Python主要应用领域

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

四、Python的优缺点

  优点:

    1、Python程序看上去总是简单易懂,初学者容易上手;

    2、开发效率非常高,Python有非常强大的第三方库,降低开发周期;

    3、 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节;

    4、可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上);

    5、 可扩展性————你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们;

    6、可嵌入性————你可以把Python嵌入你的C/C++程序。

  缺点:

    1、 速度慢;

    2、 代码不能加密;

    3、 线程不能利用多CPU。

五、Python解释器

  CPython     是使用最广的Python解释器。

  IPython     只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。

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

  Jython       运行在Java平台上的Python解释器。

  IronPython   是运行在微软.Net平台上的Python解释器。

  推荐使用CPython解释器

六、Python版本

  py2与3的详细区别:

  1、PRINT IS A FUNCTION

    The statement has been replaced with a print() function, with keyword arguments to replace most of the special syntax of the old statement (PEP   3105). Examples:

  + View Code

  You can also customize the separator between items, e.g.:


1


print("There are <", 2**32, "> possibilities!", sep="")

     ALL IS UNICODE NOW,从此不再为讨厌的字符编码而烦恼。

  2、某些库名称改了:


Old Name


New Name


_winreg


winreg


ConfigParser


configparser


copy_reg


copyreg


Queue


queue


SocketServer


socketserver


markupbase


_markupbase


repr


reprlib


test.test_support


test.support

   Python3是趋势,本博文下所有代码都是用Python3编写。

Python入门:

一、 Python安装

    1)Windows

      1、下载安装包

      https://www.python.org/downloads/

      2、安装

      默认安装路径:C:\python27

      3、配置环境变量

      【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】

      如:原来的值;C:\python27,切记前面有分号

    

    2)Linux、mac  自带Python2.6,可自行更新至3版本。

二、 第一个Python程序

  在linux 下创建一个文件叫hello.py,并输入


1


print("Hello World!")

  

  然后执行命令:python hello.py ,输出


1

2

3


localhost:~ jieli$ vim hello.py

localhost:~ jieli$ python hello.py

Hello World!

  指定解释器

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

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


1

2

3


#!/usr/bin/env python

print "hello,world"

    如此一来,执行: ./hello.py 即可。

    ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py

三、变量\字符编码

  1)变量

     1、声明变量:

      


1

2

3


#_*_coding:utf-8_*_

name = "Poker"

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

    

     2、变量定义的规则:

    • 变量名只能是 字母、数字或下划线的任意组合;
    • 变量名的第一个字符不能是数字;
    • 以下关键字不能声明为变量名:
      [‘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‘]    

3、变量的赋值

      


1

2

3

4

5

6

7

8


name = "Poker"

name2 = name

print(name,name2)

name = "Jack"

print("What is the value of name2 now?")

  2)字符编码

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

    ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧      语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。

  显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

    UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保         存,东亚的字符用3个字节保存.

  3)注释

    当行注视:# 被注释内容

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

四、 用户输入


1

2

3

4

5

6

7


#!/usr/bin/env python

#_*_coding:utf-8_*_

#name = raw_input("What is your name?") #only on python 2.x

name = input("What is your name?")

print("Hello " + name )

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


1

2

3

4

5

6

7

8

9

10


#!/usr/bin/env python

# -*- coding: utf-8 -*-

import getpass

# 将用户输入的内容赋值给 name 变量

pwd = getpass.getpass("请输入密码:")

# 打印输入的内容

print(pwd)

五、字符串及格式化输出

  万恶的字符串拼接:

  python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。

  

字符串格式化输出


1

2

3

4


name = "poker"

print "i am %s " % name

#输出: i am poker

  PS: 字符串是 %s;整数 %d;浮点数%f     或者用 format方法

六、流程控制

  if。。。else  、  for loop  、   while loop

  1)if。。。else   

    需求一:用户身份认证


1

2

3

4

5

6

7

8

9

#!/usr/bin/env python

#-*- coding:utf-8 -*-

import getpass

name = raw_input("请输入用户名:")

pwd = raw_input("请输入密码:")

if name == "tianshuai" and pwd == "123":

    print "登录成功"

else:

    print "登录失败"

     测试:


1

2

3

4

5

6

7

8

9

[email protected]:/home/tim# python tianshuai.py

请输入用户名:tianshuai

请输入密码:

登录成功

[email protected]:/home/tim# python tianshuai.py

请输入用户名:tianshuai

请输入密码:

登录失败

[email protected]:/home/tim#

 

  2) for loop      

    需求一:循环十次,但是遇到小于5的循环次数就不走了,直接跳入下一次循环


1

2

3

4


for i in range(10):

if i<5:

continue #不往下走了,直接进入下一次loop

print("loop:", i )

    需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出


1

2

3

4


for i in range(10):

if i>5:

break #不往下走了,直接跳出整个loop

print("loop:", i )

  

    需求三、猜数字游戏       有3次机会,如果3次中没有猜中给予提示,3次都没有猜中,鼓励!


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#!/usr/bin/env python

#-*- coding:utf-8 -*-

import random   #随机模块

rand_num = random.randrange(10)

 

for in range(3):

    guess_num = int(raw_input("请猜测数字:"))

    if guess_num == rand_num:

        print "太棒了你猜对了"

        break

    elif guess_num > rand_num:

        print "你猜测的有点大了,请尝试小点的数字"

    else:

        print "你猜测的有点小了,请尝试大点的数字"

else:

    print "不要灰心,这次只是运气不好,请下次尝试"

 

print "这个真正的数字是:%" % rand_num

   3)while  loop

    他的原理是:当条件为真的时候运行,当条件为假的时候停止!

    无限循环


1

2

3

4

5


count = 0

while True:

    print("花儿也谢了...",count)

    count +=1

   

没有一个规定次数,不设置条件永远循环下去。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

#!/usr/bin/env python

#-*- coding:utf-8 -*-

import time

count = 0

while True:

    count +=1

    print "loop",count

    time.sleep(3)

#这个循环3秒钟自+1 ,后无线循环只要这个条件为”真“,就无限循环下去

那看下下面的例子

#!/usr/bin/env python

#-*- coding:utf-8 -*-

 

import time

cout = 0

 

while cout < 3:

    cout +=1

    print "shuai",cout

    time.sleep(3)

     

#这个循环每3秒循环一次,当条件cout < 3的时候为真(自己设置的条件),当cout 不小于3的时候为假(false)停止。

时间: 2024-10-20 10:38:20

python自动华 (一)的相关文章

VIM中设置python自动缩进为4个空格

从别处找来的方法,做记录. 在全局vim配置文件中(/etc/vimrc)或个人vim配置文件中($HOME/vimrc)加入如下代码即可将自动缩进改为4空格: autocmd FileType python setlocal et sta sw=4 sts=4 其中相关变量含义: 变量名 缩写 含义 (no)autoindent ai 自动缩进,即为新行自动添加与当前行同等的缩进. (no)cindent ci 类似C语言程序的缩进 (no)smartindent si 基于autoinden

python自动生成iOS各尺寸规格icon

使用python自动生成iOS各尺寸规格icon(基于一张1024大图),代码如下: import PIL.Image imgNames = [((72,72),"icon-72.png"),((40,40),"icon-40.png"),((80,80),"[email protected]"),((50,50),"icon-50.png"),((100,100),"[email protected]")

Python 自动补全(vim)

一.vim python自动补全插件:pydiction 可以实现下面python代码的自动补全: 1.简单python关键词补全 2.python 函数补全带括号 3.python 模块补全 4.python 模块内函数,变量补全 5.from module import sub-module 补全 想为vim启动自动补全需要下载插件,地址如下: http://vim.sourceforge.net/scripts/script.php?script_id=850https://github.

linux终端python自动提示

hushicai | 2011-11-linux终端python自动提示 很多时候,在linux下编写python时, 都懒得去vi一个新文件,直接就新开一个终端, 进入python命令行模式,然后就可以写一些测试代码. 不过最悲剧的就是,刚开始使用的时候,每个字母都要自己写, 不能像linux普通终端那样用tab来自动完成. 于是,在网上搜索了一番,终于还是被我找到了,特此记录一下. 首先,在宿主目录~下, 新建一个.pythonstartup.py文件(linux debian类的系统用“.

python自动安装mysql5.7

python自动安装mysql5.7 python版本:python2.6 centos版本:centos6.9 mysql版本:mysql5.7.19 安装目录路径和数据目录路径都是固定,当然也可以自己修改 这个脚本的原理是,通过createmycnf.sh的shell脚本生成my.cnf,buffer pool大小等在shell脚本里已经计算好,然后installmysql.py修改生成好的my.cnf里的端口等变量 并根据my.cnf来初始化mysql,初始化完毕之后启动mysql服务,并

[转] vim配置python自动补全

vim python自动补全插件:pydiction 可以实现下面python代码的自动补全: 1.简单python关键词补全 2.python 函数补全带括号 3.python 模块补全 4.python 模块内函数,变量补全 5.from module import sub-module 补全 想为vim启动自动补全需要下载插件,地址如下: http://vim.sourceforge.net/scripts/script.php?script_id=850https://github.co

python 自动发现Java端口

python 自动发现Java端口 #!/usr/bin/env python #encoding: utf8 import subprocess try: import json except ImportError: import simplejson as json command = "netstat -tpln | grep -v '127.0.0.1' | awk -F '[ :]+' '/java/ && / / {print $5}'" p = subp

用Python自动办公,做职场高手(完结)

教程目录: ┣━07.S2 Word自动化处理,又快又好做文档┃  ┣━36 本章介绍┣━08.[Word]S2-1 轻松用Python快速生成Word文档┃  ┣━45.[真实案例]S2-1-3 批量生成50份不同乙方的合同┃  ┣━38.[视频讲解]S2-1-1 用Python套用Word模版,再也不做重复工作┃  ┃  ┣━[视频讲解]S2-1-1 用Python套用Word模版,再也不做重复工作┃  ┣━42.[视频讲解]S2-1-2 用Python给Word添加图片和表格,神操作┃  

Python自动单元测试框架(摘要笔记)

规范Python单元测试 原文:https://www.ibm.com/developerworks/cn/linux/l-pyunit/ 测试是一个贯穿于整个开发过程的连续过程,从某个意义上说,软件开发的过程实际上就是测试过程.正如Martin Fowler所说的"在你不知道如何测试代码之前,就不该编写程序.而一旦你完成了程序,测试代码也应该完成.除非测试成功,你不能认为你编写出了可以工作的程序." 测试最基本的原理就是比较预期结果是否与实际执行结果相同,如果相同则测试成功,否则测试