【python自动化第一篇:python介绍与入门】
一、python介绍以及发展史
1.1 python的介绍:
简单点来说吧,python这玩意儿是一个叫做Guido van Rossum的程序猿在1989年的圣诞打发时间而决心去开发的一个脚本编程语言。它之前的名字是以abc语言的一种继承。之所以叫做python,那是因为这个伟大的程序员Guido van Rossum是BBC电视剧——蒙提·派森的飞行马戏团(Monty Python‘s Flying Circus)的爱好者。
1.2 为毛要学习python:
学习python首先要去了解python是个什么类型的语言,得要从编程语言的分类中去了解一下
编程语言主要从以下几个角度进行分类:
- 编译型和解释型:
- 编译型语言
咱也不用去过多过专业的去说这个概念,简而言之编译型语言就是一次把所有的代码转换成机器语言,然后写成可执行文件。典型代表是像C/C++、Pascal/Object Pascal(Delphi)、VB等基本都可视为编译语言。
- 解释型语言
然而相对于解释型语言在程序运行的前一刻,还只有源程序而没有可执行程序;而程序每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将源代码转换成二进制代码以供执行,总言之,就是不断地解释、执行、解释、执行……所以,解释型程序是离不开解释程序的。像是Java、JavaScript、VBScript、Perl、Python这些开发语言就是解释型语言。
- 总结一下:
对于编译型语言和解释型语言的简单理解就像是一场翻译一样,编译型语言可以理解成翻译过程中一口气说完了然后再翻译一样;对于解释型语言就像是逐句翻译一样啦。
- 动态语言和静态语言
- 动态语言:
动态类型语言是指在程序运行期间才去做数据类型检查的语言,简而言之就是在动态类型的语言编程时,永远不用给任何变量指定数据类型,该语言会在你第一次赋值给变量的时候,在其内部将数据类型记录下来。对于python和ruby就是其中的代表了。
- 静态语言:
静态语言就是在程序运行之前(也就是在编译的时候)就要检查数据类型的语言。说白了也就是第一次在给变量赋值时要提前声明变量类型。静态类型语言与动态类型语言刚好相反。C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
- 强定义类型和弱定义类型语言
- 强定义类型语言
强制数据类型定义的语言,也就是说一个数据类型定义之后要是不经过转换就还是之前的数据类型。像是咱么学习的python就是其中的代表。
- 弱定义类型语言
数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
- 综上所述:python是一门动态解释性的强类型定义语言
python的优缺点:
- 优点:通俗易懂简洁明了;是一种开发效率比较高的高级编程语言; 还具有较高的可移植性、可拓展性和可嵌入性。
- 缺点:运行的速度当然比不过C语言;代码不能加密;线程不能利用多CPU的问题。
- 总之:每一种开发语言自然有其特点,对于我们学习这一门编程语言,对此我能说表达只能是,不要跟SB理论,SB会把你拉到跟他一样的高度,然后用充分的经验把你打倒。
python的解释器:
什么叫解释器呢,简单点的理解就是将python语言转换成计算机能够识别或者读懂的字节码的一个玩意儿。
- 像是基于C语言的Python解释器就叫做Cpython,也是使用比较广的一种python解释器了
- IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度;绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和Cpython的不同特点了
- 对于Jpython是运行在Java平台上的Python解释器;IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器;对于我们的学习然而并没什么卵用
二、python的发展史及其安装
2.1 python的发展史
- 对于现在的学习,我们需要了解的python的发展,需要了解即可:
- 1999年提出了第一个web框架-ZOPE
- 2000年发布了python2.0版本,加入了内存回收机制,构成了现在Python语言框架的基础
- 2004年python2.4版本诞生,同时也诞生了Django这一web框架
- 2008年诞生了python3.0版本,在2.x版本上实现了一次大的跳跃
- 2010年诞生的python2.7也是承接2.x和3.x的一个过渡版本。因为在官方文档中2.x系列将在2020年结束支持,所以python3.x是必然的趋势。
2.2 python的安装
For windows
1、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:\python27
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python27,切记前面有分号
- FOr linux 参考http://www.jb51.net/article/57926.htm
三、python入门
3.1 hello world程序
第一个程序“hello world!”
#!/usr/bin/env python #声明python的环境变量,此处加env和不加env的区别就是:加env的会根据系统配置的环境变量去用默认的python环境去解释程序,没加env则代表直接通过/usr/bin/python去执行
# -*- coding:utf-8 -*- #声明字符编码 print("hello world") #在屏幕上打印“hello world1”
3.2 python中文编码
在学习python中文编码之前,我们需要了解一下什么是编码:
- 编码是用预先规定的方法将文字、数字或其他对象编成数码,或将信息转换成规定的电脉冲信号。编码是信息从一种形式或格式转换为另一种形式的过程。
- 然而我们需要了解的字符编码如下:
- ASCII码:美国标准信息交换码;主要用来显示英文和欧洲语言;其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
- Unicode码:也叫做万国码,目的是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536。
- Utf-8:是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,中文字符用3个字节保存。
在python2.x和3.x之间的中文编码之间有一个区别是:在python2.x系列环境下需要声明或者指定字符编码;然而python3.x不需要声明字符编码。
- 关于中文编码如下:
- GB2312:国标码,诞生于1980年,一共收录了7000多个汉语字符
- GBK:1995年,一共收录了20000多个汉语字符
- GB18030:是2000年为了取代GBK1.0而诞生的正式国家标准,同时还收录了少数民族语言文字
3.3python基础语法
3.3.1 基本语法注意事项
- 注释
#!/usr/bin/env python
# -*- coding: UTF-8 -*- # 第一个注释 #号代表单行注释 '''注释内容
吧啦吧啦 '''之间插入要注释的内容(或者也可以使用"""之间插入注释内容)
'''
注意事项:多行注释的内容可以按照相应的格式作为变量传入参数使用
- 变量
什么是变量呢?照字面的意思来说就是可变化的量!尼玛!!太牵强了,简单点来说就是:用来指定不同的数据类型,这些变量可以存储整数,小数或字符;然后再程序中被调用的一片内存空间。
注意事项:
- 变量的命名可以使用字符数字和下划线的组合
- 变量名的首字母可以是字母或者下划线,对于特殊字符或者数字还是呵呵吧
- 变量的赋值用=连接
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
name=wanghui
name2=name
name=liming
print("MY name is",name,name2 "is my friend!!")
对于这个程序,比较好的解释就如图所示了:
- 输入
类似于shell脚本中的read,通过input()来获取对引得(注意在使用getpass模块时要用ide打开)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import getpass #导入密文模块(密文显示密码用)
username = input("name:") #用户名输入提示
passwd = getpass.getpass("password:") #密码提示输入(密文显示)
print(username,passwd) #打印username和passoword的赋值
- 流程控制
if condition: 所谓的单分支语句
if condition:
else:
if condition:
print("heheheh") ##单分支判断,condition是判断条件,如果满足条件就执行print if condition:
print("balabala")
else:
print("heheh") ##双分支判断,condition是条件,else是不满足condition的条件 if condition1:
print("hehehe")
elif condition2:
print("jijij")
elif ....:
operation
else:
print("end") ##多分支判断
下面是一个猜数字判断游戏:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
num=20
guess=int(input("please input a number:"))
if guess == num:
print("it's ok!!")
elif guess > num:
print("guess smaller please!!")
else:
print("guess bigger please!!")
【python自动化第一篇:python介绍与入门】的更多相关文章
- Python开发 第一篇 python的前世今生
Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...
- python自动化第一课 - python安装以及pycharm配置
1.安装python 1.1打开python官网https://www.python.org/downloads/windows/进行下载Python 3.8.0 1.2下载完毕后进行安装,1勾选 A ...
- Python基础第一篇-------python的介绍
一.python的介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本 ...
- jquery-easyUI第一篇【介绍、入门、使用常用的组件】
什么是easyUI 我们可以看官方对easyUI的介绍: easyUI就是一个在Jquery的基础上封装了一些组件-.我们在编写页面的时候,就可以直接使用这些组件-非常方便-easyUI多用于在后台的 ...
- SpringMVC第一篇【介绍、入门、工作流程、控制器】
什么是SpringMVC? SpringMVC是Spring家族的一员,Spring是将现在开发中流行的组件进行组合而成的一个框架!它用在基于MVC的表现层开发,类似于struts2框架 为什么要使用 ...
- Python人工智能第一篇:语音合成和语音识别
Python人工智能第一篇:语音合成和语音识别 此篇是人工智能应用的重点,只用现成的技术不做底层算法,也是让初级程序员快速进入人工智能行业的捷径.目前市面上主流的AI技术提供公司有很多,比如百度, ...
- python学习第一讲,python简介
目录 python学习第一讲,python简介 一丶python简介 1.解释型语言与编译型语言 2.python的特点 3.python的优缺点 二丶第一个python程序 1.python源程序概 ...
- Python【第一篇】基础介绍
一.本节主要内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc文件 数据类型初识 数据运算 表达式if ...else语 ...
- 【python自动化第二篇:python入门】
内容概览 模块 python运行过程 基本数据类型(数字,字符串) 序列类型(列表,元组,字典) 模块使用 模块我们可以把它想象成导入到python以增强其功能的一种拓展.需要使用import来导入模 ...
随机推荐
- js初学必知三重点
这里列出了一些JS重要知识点(不全面,但自己感觉很重要).彻底理解并掌握这些知识点,对于每个想要深入学习JS的朋友应该都是必须的. 讲解还是以示例代码搭配注释的形式,这里做个小目录: JS代码预解析原 ...
- rpc远程调用开发
RPC即远程过程调用,适用于集群管理,集群节点就是RPCServer,而我们发起远程调用的web服务器就是RPCClient.所以是少数rpcClient(可能一个)对多个RPCServer(集群节点 ...
- PHP模块设计
1.强内聚,功能尽量在类的内部完成 2.弱耦合,开放尽量少的方法给外部调用
- 10分钟进阶Nuget
nuget是什么 .net版的maven(java)? 如果你用过windows的chocolatey,mac的homebrew或许更容易理解他,先来回顾下以前我们是如何处理或者碰到过的问题. 1.假 ...
- 如何彻底删除PPA软件库
添加一个PPA源 sudo add-apt-repository ppa:user/ppa-name 如添加cairo-dock到weekly update源 sudo add-apt-reposit ...
- C# dataGridView不显示默认行的解决办法
当页面只有一个dataGirdView时,调用From的Activated函数,在Activated函数里调用以下两个函数,可清除默认选择行 private void From_Activated(o ...
- ie8下jquery读取当前点击的标签位置错误,原因是里面有内容写了text-indent:-9999px
今天写一地图的效果,鼠标点击对应的区域,弹出所点击区域的名字. 因为设计的区域名字有特殊效果,所以,在点击区域里面套了个标签写上区域名字用来识别,但是这个文字呢不同显示在页面上,所以就给 em 加个了 ...
- Ubuntu配置apache
http://blog.csdn.net/ljchlx/article/details/21978431 http://www.2cto.com/os/201110/107283.html
- 【POJ 1639】 Picnic Planning (最小k度限制生成树)
[题意] 有n个巨人要去Park聚会.巨人A和先到巨人B那里去,然后和巨人B一起去Park.B君是个土豪,他家的停车场很大,可以停很多车,但是Park的停车场是比较小.只能停k辆车.现在问你在这个限制 ...
- poj1436 Horizontally Visible Segments
这是一个区间更新的题目,先将区间放大两倍,至于为什么要放大可以这样解释,按照从左到右有4个区间,y值是[1,5],[1,2],[3,4],[1,4]如果不放大的话,查询[1,4]区间和前面区间的”可见 ...