python入门必备知识总结
人生苦短,我用python。看图说话
一.python简介与发展:
python 是一种面向对象的解释性计算机程序设计语言。
python由荷兰人Guido van Rossum 于1989年发明。
1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
1994年1月 python 1.0诞生,增加lambda,map,filter and reduce
1999年,python web的鼻祖 Zope 1 发布
2000年10月16号 ,python2.0诞生,加入内存回收机制,构成现在Python语言框架
2004年11月30号,python 2.4诞生,同年web框架django诞生。
2006年11月19号,python 2.5诞生
2008年10月1号, python2.6诞生
2008年12月3号, python3.0诞生
2009年6月27号, python3.1诞生
2010年7月3号, python 2.7诞生
提示:由于python2.6与3.0差距较大,于是推出过渡版本,并于2014年十一月,宣布将支持Python 2.7至2020,并重申,将不会有2.8版本,用户将移动到Python 3.4
2011年2月20号, python3.2诞生
2012年11月29号,python3.3诞生
2014年3月16号, python3.4诞生
2015年11月13号,python3.5诞生
二.目前python的主要应用领域:
云计算:云计算最火的语言,如:openstack
web开发:很多大型的网站均有python开发,如:Youtube,Dropbox,豆瓣等等,python的web框架:Django,flask
科学运算,人工智能:典型NumPy,SciPy, Matplotlib, Enthought librarys,pandas
运维:不会开发的运维,不是好运维,不会开发的运维,必将被淘汰
金融:量化交易,金融分析等等。。。
图形GUI:PyQT, WxPython,TkInter
三.python主要应用的公司:
YouTube、Instagram、豆瓣、Google、Yahoo等,NASA(美国航空航天局)等等。。。
四.python的优缺点:
优点:
1.Python的定位是“优雅”、“明确”、“简单”,"易学",“免费”,“简单”。
2.开发效率非常高,Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、 CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要 安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、 Twisted和Python图像库等等。
3.高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
4.可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
5.可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
6.可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
7.Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。
8.规范的代码。Python采用强制缩进的方式使得代码具有极佳的可读性。
五.python的种类:
1.Cpython:python的官网版本,使用C语言实现,使用最为广泛,Cpython实现会将源文件(py文件)转换成字节码(pyc文件),然后运行在python虚拟机上。
2.Jython:python的java实现,Jython会将python代码动态编译成Java字节码,然后在JVM上运行。
3.IronPython:python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
4.PyPy(特殊) Python实现的Python,将Python的字节码字节码再编译成机器码
5.RubyPython、Brython ...
六.python与其他语言对比:
python与C对比:
python易学,易用,易懂。并且是一种脚本语言;python的类库齐全并且简单。
C语言:代码编译得到机器码,机器码在处理器上直接执行,每一条指令控制CPU工作,与底层硬件打交道
Python 和 C Python这门语言是由C开发而来
对于使用:由于Python的类库齐全并且简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
对于速度:Python的运行速度相较与C,很慢。
Python 和 C#对比:
python可以跨平台,可运行在linux、windows,osx等平台。
python开源,c#则相反
对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
对于速度:Python是解释性语言,C#需要编译,所以python运行要慢点
python与java对比:
开源方向来说,Python更有优势,Java(虽然最近Java已经开源了,但有一些开源协议上面的版权受限);
对于使用:Python更简洁,Java过于庞大复杂(如Web服务器)
对于速度:于速度:Python是解释性语言,java需要编译,所以python运行要慢点
python与php对比:
Python的OO更加完善
Python可以开发桌面应用程序
python与ruby perl对比:
与ruby不同,OOP对于Python是可选的,所以Python不会强制用户选择OOP开发
七:python安装:
windows环境:
1、下载安装包https://www.python.org/downloads/
2、安装默认安装路径:C:\python27
3、配置环境变量【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】如:原来的值;C:\python27,切记前面有分号
linux环境:
linux中自带python环境,如果想安装自己想要的版本(原本是2.6升级为2.7的版本),如下:
查看默认Python版本
python -V
1、安装gcc,用于编译Python源码yum install gcc
2、下载源码包,https://www.python.org/ftp/python/
3、解压并进入源码文件
4、编译安装./configuremake allmake install
5、查看版本/usr/local/bin/python2.7 -V
6、修改默认Python版本mv /usr/bin/python /usr/bin/python2.6ln -s /usr/local/bin/python2.7 /usr/bin/python
7、防止yum执行异常,修改yum使用的Python版本vi /usr/bin/yum将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
到此为止,一下内容纯干货:
########################################################################################
第一个程序从hello world开始,并且这是2.7与3.6的打印区别:
title:python基础之数据类型与变量:
一 变量
变量:是用来存储值的所在处(保存状态),它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据
声明变量:
# -*-coding:utf-8-*-name = 'cyy'
上述代码声明了一个变量,变量名为: name,变量name的值为:"cyy"
定义:允许作为名字的有效字符串集合
- 名字必须有实际意义,可读性好
- 首字母必须是字母或下划线(_)
- 剩下的字符可以是字母和数字或者下划线
- 大小写敏感
- 两种风格:conn_obj或ConnObj
- 不能使用关键字,不能使用内建
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['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']
变量的赋值:
链式赋值:y=x=z=1
多元赋值:x,y=1,2 x,y=y,x
增量/减量/乘量/除量 赋值:
变量解压赋值:
数据类型:数据类型是在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。数据类型分类:
int(整型)
python2.*与python3.*关于整型的区别
python2.*在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647 在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807python3.*整形长度无限制
python2.*:
跟C语言不同,Python的长整型没有指定位宽,也就是说Python没有限制长整型数值的大小,但是实际上由于机器内存有限,所以我们使用的长整型数值不可能无限大。在使用过程中,我们如何区分长整型和整型数值呢?通常的做法是在数字尾部加上一个大写字母L或小写字母l以表示该整数是长整型的,例如:a = 9223372036854775808L注意,自从Python2起,如果发生溢出,Python会自动将整型数据转换为长整型,所以如今在长整型数据后面不加字母L也不会导致严重后果了。 python3.*长整型,整型统一归为整型
eg:
float(浮点型)
1.23
,3.14
,-9.01
,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9
,或者12.3e8
,0.000012可以写成1.2e-5
,等等。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差
name="zzl"
print(name.capitalize())#首字母变成大写
print(name.center(30)) # 居中
print(name.center(30,'*'))#居中加填充msg='hello world'
print(msg.count('l'))#统计出现l在msg中出现的次数
print(msg.count('l',0,3))#统计l在msg中0到3之间l出现的次数
print(msg.count('l',-1))#统计l在msg中最后一个字符中出现l的次数
print(msg.endswith('s'))#判断msg是不是以s结尾,不是则为False,是为True
print(msg.startswith('h'))#判断msg是不是以h开头,不是则为False,是为True
print(msg.find('l'))#统计l出现的位置,如果不存在,则返回-1,存在返回位置,存在多个,只返回第一个出现的位置
print(msg.find('l',3,9))#统计l在msg的3到9之间,l出现的位置
print(msg.index('e'))#index与find本质区别是:index已经知道msg中存在e,然后进行查找,如果不存在会报错。
print(msg.isdigit())#判断字符串中是否包含数字,包含数字为False,不包含为Truemsg='hello world'#多用于字符串拼接
msg_new='*'.join(msg)
print(msg_new)msg='root:x:0:0:root:/bin/bash'
print(msg.split(':')) #split分割
print(msg.split(':',maxsplit=1))#以:为分割符,最大分割一次msg_list=msg.split(':')
print(':'.join(msg_list))#按照:拼接字符串msg='helLo world'
print(msg.upper())#小写转化为大写
print(msg.swapcase())#大小写转换msg='*****zzl*****'
print(msg.strip('*'))#去掉首尾的指定字符
print(msg.lstrip('*'))#去除左边指定字符
print(msg.rstrip('*'))#去除右边指定字符print(msg.replace('z','y')) #替换字符,不指定个数全部替换,指定几个就替换几个
print(msg.replace('z','y',1))
不常用的方法:
#不常用的方法
msg='hello world'
print(msg.isalpha())#msg是纯字母返回True,不是则返回False
print(msg.isidentifier())#msg是内置标识符,返回True,否则返回False
print(msg.isspace())#msg是空格,返回True,反之,返回False
print(msg.istitle())#msg是标题,也就是首字母大写,返回True
print(msg.ljust(10))#10个字符左对齐
print(msg.ljust(10,'*'))#10个字符左对齐,10个字符*填充
print(msg.rjust(10))#10个字符右对齐
print(msg.rjust(10,'*'))#10个字符右对齐,10个字符*填充
print(msg.zfill(20))#总长度20个,不足则在右边添加0message='''aaa
bbb
ccc
ddd
'''
print(message.splitlines()) #按照行数切分
字符串索引,再看解压
msg='hello'
#字符串索引操作
print(msg[4])
print(msg[-2])
#字符串的切分操作
print(msg[0:3]) #切分原则:顾头不顾尾
print(msg[0:])
print(msg[:3])
print(msg[0:2000:2])#按两个字符切分
print(msg[::-1])#hello倒过来#再看变量解压操作
msg='hello'
x,y,z,*_=msg
print(x)
print(y)
print(z)
x,y,z='abc','aaa','xxx'
print(x)
print(y)
print(z)
列表的内置方法:
name_list=['zzl','cyy','zl','cy']
#列表的索引操作
print(name_list[-1])
print(name_list[0:2])
print(name_list[::-1])
#列表的内置方法
#append增加到末尾
name_list=['zzl','cyy','zl','cy']
name_list.append('yy')
print(name_list)
#insert插入到指定位置
name_list=['zzl','cyy','zl','cy']
name_list.insert(0,'ylqh')
print(name_list)
#pop删除name_list.pop()#默认从右边删除
name_list.pop(2)#指定删除第二个
print(name_list)
#清空列表
name_list=['zzl','cyy','zl','cy']
name_list.clear()
print(name_list)#复制一份copy
name_list=['zzl','cyy','zl','cy']
i=name_list.copy()
print(i)#计数
name_list=['zzl','cyy','zl','yy','cy','yy']
print(name_list.count('yy'))#yy出现了几次#两个列表合并
name_list=['zzl','cyy','zl','cy']
nlist=['ylqi','lift']
name_list.extend(nlist)
print(name_list)
#单独加入列表
every_lis='xxx'
name_list.extend(every_lis)
print(name_list)
#remove移除
name_list=['zzl','cyy','zl','cy']
name_list.remove('zl')#按照元素名移除,有多个重复的元素值时,移除第一个
print(name_list)#reverse反序排列name_list=['zzl','cyy','zl','cy']
name_list.reverse()#反序
print(name_list)
#sort排列
name_list=['d','c','A','1','@','*']
name_list.sort()#按照字符编码表排列
print(name_list)
#统计列表有几个元素或说成列表的长度
name_list=['zzl','cyy','zl','cy']
print(len(name_list))#统计长度#判断是否在列表里面
# name_list=['zzl','cyy','zl','cy']
print ('zl' in name_list)
print ('l' in name_list)
队列(先进先出)
队列
方法一:
lis=[]
lis.append(1)
lis.append(2)
lis.append(3)
lis.append(4)
print(lis)
print(lis.pop(0))
print(lis)
print(lis.pop(0))
print(lis)
print(lis.pop(0))
print(lis)
print(lis.pop(0))
print(lis)方法二:
l=[]
l.insert(0,1)
l.insert(0,2)
l.insert(0,3)
l.insert(0,4)
print(l)
print(l.pop())
print(l)
print(l.pop())
print(l)
print(l.pop())
print(l)
print(l.pop())
print(l)方法一 and 二 输出结果:[4, 3, 2, 1]
1
[4, 3, 2]
2
[4, 3]
3
[4]
4
[]
堆栈:(先进后出)
#堆栈:(先进后出)lis=[]
lis.append(1)
lis.append(2)
lis.append(3)
lis.append(4)
print(lis)
print(lis.pop())
print(lis)
print(lis.pop())
print(lis)
print(lis.pop())
print(lis)
print(lis.pop())
print(lis)输出结果:
[1, 2, 3, 4]
4
[1, 2, 3]
3
[1, 2]
2
[1]
1
[]
5、元组(不可变列表)
常用操作:
- 索引
- 新增
- 删除
- 键、值、键值对
- 循环
- 长度
座右铭:没有最好,只有更好
转载于:https://www.cnblogs.com/ylqh/p/6228013.html
python入门必备知识总结相关推荐
- python入门必备知识_python入门基本知识
1. 什么是语言 语言是一个事物与另外一个事物沟通的介质. python则是人(程序员)与计算机沟通的介质. 2. 什么是编程 编程就是程序员将自己想要让计算机做的事情用编程语言翻译出来写到一系列的文 ...
- Python入门必备知识
目录 一.python基本数据类型 1.1变量赋值 1.2标准数据类型 1.2.1Number(数字) 1.2.2String(字符串) 1.2.3List(列表) 1.3Python数据类型转换 二 ...
- 全站最全面的Python 基础入门必备知识大全,学完即就业!【建议收藏仔细学习】
前言: Python作为21世纪最火的编程语言,市面上各种学习视频层出不穷,关于Python的学习氛围也逐渐浓厚!!最近一段时间越来越多的知友们在私信我,希望我出一期python基础入门的内容,肝了N ...
- python笔记基础-Python入门基础知识学习笔记之一
为什么要写这篇文章? 本人做过Objective-C开发,现在在用C#做WinForm开发.近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样.故想通过本文记录 ...
- Python入门基础知识学什么?
Python基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python入门基础知识学什么呢?来看看下面小编的详细介 ...
- Python入门必备,Python零基础入门
近几年来,Python发展势头强劲,越来越多的公司加大了对Python开发人才的招聘.很多人都看好Python的发展,纷纷前来学习Python. 目前Python应用范围还是挺多的,从Web.爬虫.数 ...
- 第一章:python入门储备知识
第一章:python入门储备知识 一.编程与编程语言 1.1什么是语言? 语言就是人与人之间进行沟通的工具(英语.德语.法语等等). 1.2什么是编程? 编程就是人类按照需求把自己想要让计算机做的事用 ...
- PHP入门必备知识-wampserver的安装以及配置
PHP入门必备知识-wampserver的安装以及配置 一.wampserever的安装 学习任何一门语言,工具是必不可少的,所谓"工欲善其事,必先利其器".对于php初学者来说, ...
- python基础一入门必备知识-Python数据分析入门必备基础知识
今天,老师要带大家解数据分析的定义.核心思路.应用领域以及开发流程,向大家全方位展示数据分析入门必备基础知识,全都是干货哦!虽然看完本文,不能让大家立马变身为一名数据分析师,但是能让大家对数据分析有一 ...
- python编程入门必备知识-Python快速编程入门,打牢基础必须知道的11个知识点
Python被誉为全世界高效的编程语言,同时也被称作是"胶水语言",那它为何能如此受欢迎,下面我们就来说说Python入门学习的必备11个知识点,也就是它为何能够如此受欢迎的原因. ...
最新文章
- #3456. 城市规划(生成函数,多项式求逆)
- 5分钟,带你了解不同类型的云计算!
- python qt 按钮_PyQt(Python+Qt)学习随笔:toolButton的popupMode属性
- 清除Docker中所有为<none>的镜像(虚悬镜像)
- 在 Java 虚拟机上班是一种怎样的体验?
- jsp项目如何引入vue
- python 网络音乐播放器(二):tkinter 实现歌词同步滚动
- python不用模块随机列表_python不用库实现随机 如何用python实现随机抽取
- MYSQL命令行闪退问题解决
- 10本经典的管理学书籍推荐,关于管理学的书都在这里了
- Ubuntu配置拼音和五笔输入法
- [T00ls]DEDECMS 0DAY
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java大学生学科竞赛管理系统7jdqe
- CSS中文字间距和行间距
- 【转】Robot Framework作者建议如何选择自动化测试框架
- html表格中加函数,excel中的substitute函数
- 跳槽没有20%以上的加薪就等于降薪?我:跳槽还降薪~
- 2022-2028年中国草炭行业市场深度分析及发展趋向分析报告
- iOS工作之余 学习提升资料(转载)
- 如何开发一个水果识别,水果识别系统,蔬菜识别系统,果蔬识别系统毕业设计毕设作品
热门文章
- C语言:编写一个程序,打印乘法“九九表”
- emui内核支持kvm吗_Linux专题—使用kvm搭建虚拟机
- C++_public、private、protected权限介绍
- i++与++i的区别+汇编分析
- http协议报文格式原理图
- web api解决序列化后返回标准时间带T问题
- JavaSceipt核心语法——运算符
- 以人为尊真我生活,Leave the world behind
- 关于Oracle-SQL语句性能优化
- 在 Intellij IDEA 中 调试 angular e2e test