Day01_初识Python
Python简介
Python的历史
1.1989年圣诞节:Guidao von Rossum开始写Python语言的编译器
2.1991年2月:第一个Python编译器(同时也是解释器)诞生,他是使用C语言实现的(后续又出现了Java和C# 实现的版本Jython和IronPython,以及PyPy、Brython、Pyston等其他实现)。可以调用C语言地库函数。在最早的版本里,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,同时提供了“列表”和“字典”等核心数据类型,同时支持以模块为基础地拓展系统。
3.1994年1月:Python1.0正式发布。
4.2000年10月16日:Python2.0发布,增加了实现完整的垃圾回收,提供好了对Unicode地支持。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。
5.2008年12月3日:Python3.0发布,它并不完全兼容之前的Python代码,不过因为目前还有不少公司在项目和运维中使用Python2.x版本,所以Python3.x的很多新特性后来也被移植到Python2.6/2.7版本中。
Python的优缺点
1.简单明确
2.学习曲线低,跟其它语言相比更容易上手
3.开放源代码,拥有强大的社区和生态圈
4.解释型语言,天生具有可移植性
5.支持两种主流的编程范式(面向对象编程和函数式编程)
6.可扩展性和可嵌入式,可以调用C/C++代码,也可以在C/C++中调用Python
7.代码的规范度高,可读性强,适合有代码洁癖和强迫症的人群
缺点包括:
1.执行效率低,因此计算密集型任务可以由C/C++编写
2.代码无法加密
3.在开发时可以选择的框架太多(web框架有100多个),有选择地地方的错误
Python的应用领域
目前的Python应用于云基础设施、DevOps、网络爬虫开发、数据分析挖掘、机器学习等领域都有着广泛的应用,因此也产生了Web后端开发、数据接口开发、自动化运维、自动化测试、科学计算和可视化、数据分析、量化交易、机器人开发、图像识别和处理等一系列的职位。
安装Python3.7
1.在官网上下载Python3.7,根据自身需要,按步骤安装即可。
安装后可以从终端运行Python程序,python --version查看Python的版本,如下图:
也可以先输入python进入交互式界面1,在执行一下代码检查python的版本。
其他工具介绍
IDLE-自带的集成开发工具
IDLE是安装python环境时自带的集成开发工具,如下图所示:
IPython - 更好的交互式编程工具
IPython是一种基于Python的交互式解释器。相较于原生的Python Shell,IPython提供了更为强大的编辑和交互功能。可以通过Python的包管理工具pip安装IPython和Jupyter,具体的操作如下所示。
pip install ipython jupyter
或者
python -m pip install ipython jupyter
安装成功后,可以通过下面的ipython命令启动IPython。当然我们也可以通过Jupyter运行名为notebook的项目在浏览器窗口中进行交互式操作。
jupyter notebook
Sublime - 文本编辑神器
首先可以通过官方网站下载安装程序安装Sublime 3或Sublime 2。
安装包管理工具。通过快捷键Ctrl+`或者在View菜单中选择Show Console打开控制台,输入下面的代码。
Sublime 3
import urllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
Sublime 2
import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read());print('Please restart Sublime Text to finish installation')
安装插件。通过Preference菜单的Package Control或快捷键Ctrl+Shift+P打开命令面板,在面板中输入Install Package就可以找到安装插件的工具,然后再查找需要的插件。我们推荐大家安装以下几个插件:
SublimeCodeIntel - 代码自动补全工具插件。
Emmet - 前端开发代码模板插件。
Git - 版本控制工具插件。
Python PEP8 Autoformat - PEP8规范自动格式化插件。
ConvertToUTF8 - 将本地编码转换为UTF-8。
PyCharm - Python开发神器
在本次学习中使用的是Anacond,里面包括jupyter。
练习
1.编写打印出“hello world”
print('hello world')
Python的变量类型
整型:Python中可以处理任意大小的整数(Python 2.x中有int和long两种类型的整数,但这种区分对Python来说意义不大,因此在Python 3.x中整数只有int这一种了),而且支持二进制(如
0b100
,换算成十进制是4)、八进制(如0o100
,换算成十进制是64)、十进制(100
)和十六进制(0x100
,换算成十进制是256)的表示法。浮点型:浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如
123.456
)之外还支持科学计数法(如1.23456e2
)。字符串型:字符串是以单引号或双引号括起来的任意文本,比如
'hello'
和"hello"
,字符串还有原始字符串表示法、字节字符串表示法、Unicode字符串表示法,而且可以书写成多行的形式(用三个单引号或三个双引号开头,三个单引号或三个双引号结尾)。布尔型:布尔值只有
True
、False
两种值,要么是True
,要么是False
,在Python中,可以直接用True
、False
表示布尔值(请注意大小写),也可以通过布尔运算计算出来(例如3 < 5
会产生布尔值True
,而2 == 1
会产生布尔值False
)。复数型:形如
3+5j
,跟数学上的复数表示一样,唯一不同的是虚部的i
换成了j
。
变量的命名
对于每个变量我们需要给它取一个名字,就如同我们每个人都有属于自己的响亮的名字一样。在Python中,变量命名需要遵循以下这些必须遵守硬性规则和强烈建议遵守的非硬性规则。
硬性规则:
变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头。
大小写敏感(大写的
a
和小写的A
是两个不同的变量)。不要跟关键字(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。
PEP 8要求:
用小写字母拼写,多个单词用下划线连接。
受保护的实例属性用单个下划线开头(后面会讲到)。
私有的实例属性用两个下划线开头(后面会讲到)。
变量的使用
int():将一个数值或字符串转换成整数,可以指定进制。
float():将一个字符串转换成浮点数。
str():将指定的对象转换成字符串形式,可以指定编码。
chr():将整数转换成该编码对应的字符串(一个字符)。
ord():将字符串(一个字符)转换成对应的编码(整数)。
下面通过一些例子来说明变量的使用。
1.使用变量保存数据并进行算术运算,如下图所示:
2.使用input()函数进行输入,因为input()输入的是字符串,若要进行运算,则需要类型转换,如下图所示
3.可以使用type()来查看变量的类型,如下图所示:
4.格式化输出%d,{},如下图所示:
5.使用str(),如下图所示:
6.使用chr(),ord()加密邮箱地址,如下图所示:
7.编写计算器
运算符
Python中是支持多种运算符的,如下图所示,根据优先级从高到底的顺序列出所有的运算符。
注:[],[:]是一个前闭后开的一个区间;is是判断的内存地址;除0以外的数都表示True;in是判断某一个字符串是否在这个字符串中,如下图所示:
练习题
1.将华氏摄氏度转换成摄氏温度 F = 1.8C + 32
F = input('请输入华氏温度:')
C = (float(F)-32)*1.0/1.8
print('{:.2f} 摄氏度 = {} 华氏度'.format(C,F))
运行结果:
2.输入圆的半径计算圆的面积和周长
import math
r = float(input('请输入圆的半径:'))
area = r ** 2 * math.pi
per = 2 * r * math.pi
print('半径为%f,面积为%f,周长为%f'% (r,area,per))
运行结果:
3.判断输入的年份是否为闰年
year = int(input('请输入年份:'))
if (year % 4 == 0 )and (year % 100 != 0 )or(year % 400 == 0):
print('闰年')
else:
print('平年')
运行结果:
4.判断是否为水仙花数
第一种:
num = input("请输入一个三位数:")
if len(num) > 3:
print('输入有误')
else:
num_1=int(num)
a = int(num_1 % 100)
b = a % 10 # 百位数
c = int(a / 10) # 十位数
d = int(num_1 / 100) # 个位数
if (d ** 3)+(c ** 3)+(b ** 3) == num_1:
print('水仙花数')
else:
print('不是水仙花数')
运行结果:
第二种:
num = input("请输入一个三位数:")
if len(num) > 3:
print('输入有误')
else:
b = int(num[0]) # 百位数
c = int(num[1]) # 十位数
d = int(num[2]) # 个位数
if (d ** 3)+(c ** 3)+(b ** 3) == int(num):
print('水仙花数')
else:
print('不是水仙花数')
运行结果:
5.实现一个正方形
for i in range(10):
print('* ',end='')
print()
for k in range(8):
print('* ',' '*14,'*',sep=" ")
for j in range(10):
print('* ',end='')
运行结果:
-
Day01_初识Python的更多相关文章
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- Python开发【第一篇】:初识Python
初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...
- Python开发【第二篇】:初识Python
Python开发[第二篇]:初识Python Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...
- 初识python面向对象
一.初识python面向对象: class Person: #使用class关键字定义一个类 age=0 #类变量(静态变量) def eat(self,food): #定义一个方法 self.age ...
- 篇2 安卓app自动化测试-初识python调用appium
篇2 安卓app自动化测试-初识python调用appium --lamecho辣么丑 1.1概要 大家好!我是lamecho(辣么丑),上一篇也是<安卓app自动化测 ...
- 2017-06-22初识python
初识python #!/usr/bin/env python (python解释器的文件路径)# -*- coding:utf-8 -*- (使用的编码内型)# python 2.7 <需要加第 ...
- day01 初识Python
今日主要内容 1.初识python 2.简单了解下python的数据类型 nubmer=int(input("请输入数字大小:")) if nubmer>66: print( ...
- @1-2初识Python爬虫
初识Python爬虫 Python爬虫(入门+进阶) DC学院 环境搭建: Python2与Python3的差异:python2与python3整体差异不大,大多是一些语法上的区别,考虑到py ...
- 初识python(二)
初识python(二) 1.变量 变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用. 1.1 声明变量: #!/usr/bin/env python # -*- coding: utf- ...
随机推荐
- 实体类的[Serializable]标签造成WebAPI Post接收不到值
WebAPI: [HttpPost] public HttpResponseMessage test([FromBody]List<Class1> list) { return Commo ...
- 【MM系列】SAP 客户增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 客户增强 前言部分 大家 ...
- MySQL学习-预备知识
开始今日份整理 1. 数据库介绍 1.1 数据库定义 数据库是一个由一批分明别类的数据构成的有序集合,这个集合通常被保存为一个或多彼此相关的文件,我们可以理解为,数据库就是一种特殊的文件,其中存储着我 ...
- Golang中的error类型
Golang中的error类型 error类型本身就是一个预定义好的接口,里面定义了一个method type error interface { Error() string } 生成一个新的err ...
- 利用Flot作基于时间段的曲线图
Flot是一个可以用于绘制多种图表的开源的JS库,Flot本身的功能已经是基本可以满足日常的需要啦,更可喜的是Flot还有很多的插件可以使用,从而为我们提供更加强大的定制功能,本文在作图中使用的显示坐 ...
- Projection Pursuit Regression----读书笔记
The central idea is to extract linear combinations of the inputs as derived features, and then model ...
- HDU 2196 Computer( 树上节点的最远距离 )
Computer Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- 编写的Java第一个程序
没什么好介绍的,嘻嘻 package head; public class ee { public static void main(String[] args) { System.out.print ...
- java复习(6)String、StringBuffer以及StringBuilder
0.常见的编码表 ASC||:美国标准信息交换码,用一个字节的7位可以表示. ISO8859-1:拉丁码表.欧洲码表,用一个字节的8位来表示.无法存储汉字,或者只取了汉字的一半使用 GB2312:中文 ...
- empty()、isset()、is_null()的区别
总结:1. 变量有二种状态: 已声明, 未声明2. 已声明的变量也有二种状态: 已赋值(初始化), 未赋值(未初始化)3. 变量可能会被赋值类型: null, 空值, 非空值 3.1: null值: ...