python的简介与简单使用

简介
  python的诞生
  创始人:Guido van Rossum(荷兰人:吉多)
  时间:1989年

特点:
  1.简单明了,容易上手
  2.多平台,`全面发展,平衡发展,
  3.胶水语言,有大量的库

其他语言
C :编译性语言,1970年代,和硬件结合,写嵌入设备
c++:在C的基础进行改良,自己内存需要自己管理,面向对象的编程
java:用户量最多, 谷歌公司安卓系统

当前主流编程语言分为11个大类分别为:

解释型(PHP,Perl,Python,Ruby,Tcl,Lua,JavaScript,Io)  :  Python, PHP, PERL, Ruby, Tcl, Lua, JavaScript, Io

操作系统自动化型(POSIX Shell,AppleScript,PowerShell)  :   POSIX Shell, AppleScript, PowerShell

C++风格(C++,Objective C,Java,C#)  :  C++, Objective C, Java, C#

Pascal风格(Pascal,Ada,PostgreSQL,MySQL)  :  Pascal, Ada, PostgreSQL, MySQL

Lisp类(Common Lisp,Scheme,Clojure,Emacs Lisp)  :  Common Lisp, Scheme, Clojure, Emacs Lisp

类型推理类(Standard ML,OCaml,Scala,Haskell)  :  Standard ML, OCaml, Scala, Haskell

声明型(Prolog,Erlang,Oz)  :   Prolog, Erlang, Oz

Concatenative语言(Forth,PostScript,Factor)`  :  Forth, PostScript, Factor

数据转换(SQL,Awk,Pig,XSLT)  :  SQL, Awk, Pig, XSLT

计算机代数(Maxima,Mathematica,Sage)  :  Maxima, Mathematica, Sage

数字分析类(Fortran,MATLAB,R,NumPy)  :  Fortran, MATLAB, R, NumPy


不同的编程语言运用领域不一样:
python:  系统运维,网络编程(搜索引擎,爬虫,反爬,服务器编程)
科学计算:python超越A 语言成为该领域第一(航天,美国宇航局)
人工智能,机器人
web开发
云计算
大数据及数据库编程
教育
游戏,图像处理
其他。。。


优点
1.面向对象(具有面向对象的语言java,C++,python,C#,Swift)。Python既支持面向过程的函数编程也支持面向对象的抽象编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。虽然python是基于C语言编写,但是摈弃了c中非常复杂的指针,简化了python的语法。

2.免费而且具有丰富的库。Python标准库和第三方库确实很庞大。强大的第三方库可以帮助你处理各种工作,包括正则表达式、文档的生成、单元测试、线程、数据库(Mysql,MongoDB。。)、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、QT、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的,第三方库部分需要自己安装。这被称作Python的“功能齐全”理念。除此以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

3.可移植(windows,Linux,Unix,IOS,安卓)由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。

4.可混合编程(java,C++,C), 具有可扩展性和可嵌入性。如果你需要你的一段关键代码运行得更快或者希望某些算法不公开时,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

5.简单易学易用,Python的具有的伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身,Python采用强制缩进的方式使得代码具有极佳的可读性。

6.应用领域广泛,开源Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。

缺点
1.与C++,C执行速度不够快(现在的物理设备的性能有非常大的提升,速度问题已经弱化,在一些对速度要求不是很严苛的领域使用)
2.不能封闭源代码(可混合编程,不想开源的部分可以用其他封闭的语言编程)
python官网:http://www.python.org
有歧义的地方以python官网的教程为主
python版本
python V2.7(2020年结束维护)
python V3.5 (当前教学)
python V3.8 (最新)
python V2.7和python V3.5不兼容。
python的运行
python的解释执行器的类型
Cpython (C语言开发)(官方使用)
Jpython (java语言开发)
Ironpython(.net语言开发)
pypy (python语言开发)
编译型语言:如:C++,C编译成计算机CPU能够执行的指令
解释型语言:多了一道程序通过解释器翻译成计算机CPU能够执行的指令,但是他的交互性好,
第一个python程序
编写:hello.py
执行python程序
$ python 路径名文件.py
示例:

1 #hello.py
2 print("="*30)
3 print("第一个python编程程序")
4 print('hello,wrold!')
5 print("="*30)
View Code

tarena@tedu:~$ Alan@tedu:~$ python3 ./桌面/20180702/hello.py

==============================
第一个python编程程序
hello,wrold!
==============================
注意:如果我们在执行文件的目录下,就直接 $ python3 hello.py
常用的文件后缀:
.py         python语言
.c        C语言
.cpp/.cc/.ccx         C++语言
.java         java语言


进入交互模式来验证某段代码:
1.      python3 <Enter>
2.      ipython3 <Enter>
3.      jupyter notebook <Enter>
退出交互模式
1.exit() <Enter>
2.quit() <Enter>
3.ctrl + d(输入文件结束符)


sublime下编程
ctrl + "/":给代码注释,可以选中多行注释,在按一次恢复原来状态


python 程序的组成:
程序是由模块组成
模块是由数据,函数,类组成
函数:语句组成
语句:表达式组成
表达式:运算符(八大类型)和数据(六大类型),变量......


python的核心数据类型
1.数字
整型:(int)正整数,0,负整数
十进制 函数:int() 逢十进一(0~9)
二进制:前缀0b 函数:bin() 逢二进一(0~1)
计算机:开1 关0 电路的开关,高低电频
计算机存储:位(bit)0或1,8个位为一个字节(Byte)基本单位,kB=1024B
MB=1024KB=2**10KB=2**20B;GB=1024MB=2**10MB=2**20KB=2**30B
示例:
两个门分别住着父亲和爷爷,1表示在家,0表示不在家,可以表示4种状态。
计算机就是通过这种方式来表示信息
八进制:前缀0o 函数:oct() 逢八进一(0~7)
十六进制:前缀0x 函数:hex() 逢十六进一(0~9,A~F或a~f)
其他:比如60秒一分钟 60分钟一小时,看做60进制。
浮点数:(float),
浮点数是带有小数部分的数字:
小数的表示方法: 0.12 .13 3.
科学计数法表示:小数(x)e/E(正负号)指数;注意小数(0<x<10)
复数:complex 分为两部分:(主要是用与科学计算)
实部(real)
虚部(image):虚部是以j或j结尾的数 j**2=-1,j**3=1,
布尔值:(bool)
True:表示真 (条件满足或成立) 值为:1
False:表示假 (条件不满足或不成立) 值为:0
None值:表示空值
表示函数返回的空值
(占位,解除变量,)
表达式和运算符:
表达式(expersstion):变量(先判断变量类型判断运算符)和运算符组成
扩展:在python是不需要先定义变量的数据类型,编译器会自己判断,所以在计算时,编译器会先判断变量的类型,
再判断运算符的功能。比如:+(加号),在数字类型时表示加,在字符串类型时表示连接符。
运算符:
1.算数运算符:+ 加法 - 减法 * 乘法
/ 除法 :除法得到的数是浮点数,不会丢弃小数部分
示例: >>> 8/4
2.0
>>> 1/3
0.3333333333333333
// 地板除 相除时有浮点数会得到一个浮点数
示例: >>> 7/3
2.3333333333333335
>>> 7//3
2
>>> 7//3.2
2.0
>>> 7.2//3
2.0
%求余
示例:
>>> 7%3
1
>>> 3.25%1.5
0.25
>>>

**幂运算:格式 x**y表示x的次方
示例:
>>> 3**4
81
>>> 5.6**5.1
6542.729083598374
其他:import math:math.seil():向上圆整 math.floor():向下圆整
优先级:第一:**幂运算 第二:/ // % 第三:+ - 注意由括号先算括号,优先级相同先算左边。
括号分组表达式:()括号内部的表达式先进行计算。
示例:

>>> 20**2/8+47*10-78//10+18%3*(1-6)
513.0
混合类型自动升级(更为精确的表达)
1+2.14 返回类型为浮点型3.14
3+4.0 返回7.0
基本输出函数:print
格式:print(要打印的东西) 多个用,(逗号)隔开 (一个逗号表示一个空格占位)

变量 variable
什么是变量
变量是关联一个对象的标识符
变量命名规则:
由字母,数字,下划线等符号组成,第一个符号不能是数字,不能是python关键字
python关键字:import keyword print(keyword.kwlist)
关键字列表:['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
说明:python的变量区分大小写
合法的命名:
不合法的命名:
变量赋值:
var_name = var_value/expresstion 如:a=2 a=4+7
var_name1=var_name2=var_name3=var_value 如:a=b=c=2
var_name1,var_name2,var_name3=相应的元祖元素 a,b,c=2,4,5
扩展:a,b=b,a相当与a=c;a=b;b=c,就是a,b值直接交换。
作用:
1.创建一个变量,此变量用来绑定数据对象。
2.修改一个变量的绑定关系,让其绑定另一个对象。
说明:
当变量不存在时,创建该变量,同时将变量绑定在这个对象上,
当变量存在时,改变这个变量绑定的对象
一个变量只能绑定一个对象,两个(或以上)变量可以同时绑定同一个对象
示例: pi=3.1415926535897932

python中的自动化内存管理和引用计数:
每个对象都会记录几个变量绑定(引用)自身,当引用的数量为0时,则此对象将被销毁(释放内存资源)
此种自动化内存管理的方式叫引用计数
a=10000
b=20000
a=a+b#解除绑定10000这个对象,a重新绑定30000.
c=a #c同时绑定在30000上,a,c同时绑定30000。
a=None #解除a绑定的对象
解说:河岸边树的绳子来绑船,树是变量,船是对象,河流是我们的内存空间
del 语句
作用:
用于删除变量,同时解除与对象的关联关系,如果可能能释放对象(因为两个(或以上)变量可以同时绑定同一个对象,我们删除变量后,对象的引用为0,则释放内存资源,对象至少由一个变量在引用,则不会释放内存资源。)
语法:  del 变量名
交互模式下查看当前作用域的所有变量:help('__main__') 退出键:q
is/is not 运算符
作用:
判断两个对象是否同一对象,判断的标准是他们绑定同一内存地址,用id()来查看。当时同一对象时返回True,否则返回False。
语法:  变量1 is/is not 变量2
id(obj)函数
作用:返回一个对象在内存的地址
小整数对象池
Cpython中,整数-5至256的数永远存在小整数池中,不会释放且可重复使用。
这些数是常用的,为了优化内存设置对象池,所以-5至256都是指向同一内存地址。
还有一些数据:比如True,False,None都是同一内存地址
符合赋值算术运算符
运算符: 说明
y+=x 等同于 y=y+x
y-=x 等同于 y=y-x
y*=x 等同于 y=y*x
y/=x 等同于 y=y/x
y//=x 等同于 y=y//x
y%=x 等同于 y=y%x
y**=x 等同于 y=y**x

原文地址:https://www.cnblogs.com/Alan-Song/p/9607686.html